我希望在xrdp会话开始和结束时触发命令,如果/var/log/xrdp.log文件在最后10分钟内启动了会话更新,我想触发一个shell脚本。< / p>
示例:会话登录触发器。
[root@CentOS73-RDPDemo sp]# cat trigger-login.sh
#!/bin/bash
if [ $(( $(date +%s) - $(date +%s -r /var/log/xrdp.log) )) -le 180 ]; then
tail -n 4 /var/log/xrdp.log | grep -i "socket: 11"
sh /usr/src/sp/sql-login.sh
fi
示例:会话注销触发
[root@CentOS73-RDPDemo sp]# cat trigger-logout.sh
#!/bin/bash
if [ $(( $(date +%s) - $(date +%s -r /var/log/xrdp.log) )) -le 180 ]; then
tail -n 4 /var/log/xrdp.log | grep -i "socket: 12"
sh /usr/src/sp/sql-logout.sh
fi
答案 0 :(得分:0)
编写一个脚本(比如main.sh),检查文件中是否有任何更新(var/log/xrdp.log
)。如果文件中有任何更新,请调用所需的脚本(trigger-login.sh
和trigger-logout.sh
)。
您可以使用stat
或md5sum
参考示例(main.sh)。
#!/bin/bash
touch /tmp/checkMD5
nchksum=`md5sum a.out | awk -F " " '{print $1}'`
ochksum=`cat /tmp/checkMD5`
if [ "$nchksum" == "$ochksum" ]; then
echo "both are same"
else
sh trigger-login.sh
sh trigger-logout.sh
fi
echo $nchksum >/tmp/checkMD5
安排一个crontab
作业,每10分钟运行一次main.sh脚本。