【问题标题】:Script to check the alteration of crontab用于检查 crontab 更改的脚本
【发布时间】:2014-07-31 16:46:10
【问题描述】:

您好,我需要一个脚本来监控 cron 条目,如果 crontab 条目有任何变化,它需要提醒我。 为此,我通过获取当前 crontab 的副本来使用该方法,然后它需要每天比较 crontab。如果发现任何更改需要提醒我。这可能吗?

目前我每天都在使用crontab -l > $(date +%Y%m%d).crontab命令进行复制,我认为diff命令可以进行比较 有人可以帮忙吗?

【问题讨论】:

    标签: linux crontab


    【解决方案1】:

    你可以试试下面的脚本

    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
    

    【讨论】:

    • 您好,我需要定期检查...可以吗?
    • 是的,你可以运行它是根 cron 作业
    • 谢谢。但是你能告诉我们为什么我们使用这个命令或这个命令的结果(用于学习目的)1)-f $CHECKF 和 2)find $CRDI -type f -newer $查克夫 |读取标签文件 3) 触摸 $CHECKF
    • 我们正在用 last.crontab.check 文件检查 crontab 文件的当前修改时间。如果 crontab 文件较新,我们将提到邮件。同样在每次检查后,last.crontab.check 的日期也会被修改。
    • 谢谢 ganesh 但我需要了解以上 3 个命令...您能解释一下以上 3 个命令吗?
    【解决方案2】:

    我终于得到答案了谢谢你的努力

    您好,我终于得到答案了,谢谢您的努力

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-01
      • 2011-09-28
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-11
      相关资源
      最近更新 更多