【发布时间】:2014-07-31 16:46:10
【问题描述】:
您好,我需要一个脚本来监控 cron 条目,如果 crontab 条目有任何变化,它需要提醒我。 为此,我通过获取当前 crontab 的副本来使用该方法,然后它需要每天比较 crontab。如果发现任何更改需要提醒我。这可能吗?
目前我每天都在使用crontab -l > $(date +%Y%m%d).crontab命令进行复制,我认为diff命令可以进行比较
有人可以帮忙吗?
【问题讨论】:
您好,我需要一个脚本来监控 cron 条目,如果 crontab 条目有任何变化,它需要提醒我。 为此,我通过获取当前 crontab 的副本来使用该方法,然后它需要每天比较 crontab。如果发现任何更改需要提醒我。这可能吗?
目前我每天都在使用crontab -l > $(date +%Y%m%d).crontab命令进行复制,我认为diff命令可以进行比较
有人可以帮忙吗?
【问题讨论】:
你可以试试下面的脚本
CRDI=/var/spool/cron/crontabs
CHECKF=/tmp/last.crontab.check
ALERT=iam@userhost
if [ -f $CHECKF ]
then
find $CRDI -type f -newer $CHECKF | while read tabfile
do
echo "Crontab file for user $(basename $tabfile) has changed" | mail -s "Crontab changed" $ALERT
done
fi
touch $CHECKF
【讨论】:
我终于得到答案了谢谢你的努力
您好,我终于得到答案了,谢谢您的努力
#!/bin/sh
export smtp=smtprelay.intra.xxxx.com:25
ALERT=redmine@xxxx.com
crontab -l > /home/ssx00001/y.txt
cat y.txt
diff /home/ssx00001/x.txt /home/ssx00001/y.txt > /home/ssx00001/z.txt
ab=`cat z.txt | wc -l`
echo $ab
if [[ $ab != 0 ]]; then
echo "Crontab for xxxx has changed" | mail -s "Crontab modified" $ALERT
fi
【讨论】: