1

我希望在 xrdp 会话开始和结束时触发一个命令,如果 /var/log/xrdp.log 文件在过去 10 分钟内开始更新会话,我想触发一个 shell 脚本。

示例:会话登录触发器。

[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
4

1 回答 1

0

编写一个脚本(比如 main.sh)来检查文件 ( ) 中是否有任何更新var/log/xrdp.log。如果文件中有任何更新,请调用所需的脚本(trigger-login.shtrigger-logout.sh)。

您可以使用statmd5sum

参考示例(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 脚本的作业。

于 2017-02-02T14:29:19.900 回答