gpt4 book ai didi

linux - 在日志文件更改时触发 shell 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:37 25 4
gpt4 key购买 nike

我希望在 xrdp session 开始和结束时触发命令,如果/var/log/xrdp.log 文件在最近 10 分钟内开始 session 并获得更新,我想触发一个 shell 脚本。

示例: session 登录触发器。

[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

示例: session 注销触发器

[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

最佳答案

编写一个脚本(例如 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 脚本。

关于linux - 在日志文件更改时触发 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42003327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com