Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 用于检查crontab更改的脚本_Linux_Crontab - Fatal编程技术网

Linux 用于检查crontab更改的脚本

Linux 用于检查crontab更改的脚本,linux,crontab,Linux,Crontab,嗨,我需要一个脚本来监视cron条目,如果crontab条目中有任何更改,它需要提醒我。 为此,我使用了该方法,获取当前crontab的副本,然后它需要每天比较crontab。如果发现任何更改,则需要提醒我。这可能吗 目前我正在使用crontab-l>$(日期+%Y%m%d)。crontab命令每天进行复制,我认为diff命令可以进行比较 有人能帮忙吗?你可以试试下面的脚本 CRDI=/var/spool/cron/crontabs CHECKF=/tmp/last.crontab.check

嗨,我需要一个脚本来监视cron条目,如果crontab条目中有任何更改,它需要提醒我。 为此,我使用了该方法,获取当前crontab的副本,然后它需要每天比较crontab。如果发现任何更改,则需要提醒我。这可能吗

目前我正在使用
crontab-l>$(日期+%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
嗨,我终于得到答案了谢谢你的努力

#!/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

您好,我需要定期检查…可能吗?是的,您可以运行它,它是root cron jobThank。但是您能告诉我们为什么使用此命令或此命令的结果(用于学习目的)吗1)-f$CHECKF和2)查找$CRDI-类型f-更新的$CHECKF |同时读取tabfile 3)触摸$checkfw我们正在使用last.crontab.check文件检查crontab文件的当前修改时间。若crontab文件较新,那个么我们提到的是邮件。每次检查后,last.crontab.check的日期也会被修改。谢谢ganesh,但我需要了解上述3个命令…你能解释一下上述3个命令吗。。?