我有以下脚本来更新基于MD5比较的文件,脚本从命令行完美工作,但是当我把它放在cron没有任何反应。 我只有root用户在系统上,脚本属于root,在crontab中调用脚本是这样的:/ bin / bash /home/papa/systems/sron.sh
这是我的脚本,我已经尝试了所有的解决scheme,直到现在,但没有进展,请帮助。
#!/bin/bash PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" MD5FILE=/tmp/.md5oldjar MD5FILENEW=/tmp/.md5newjar FILE_TO_CHECK=/tmp/rose.jar URL=http://xxxx DESTINATION=/tmp rm -rf $FILE_TO_CHECK wget $URL -P $DESTINATION #echo generating MD5 for $FILE_TO_CHECK echo `md5sum $FILE_TO_CHECK` > $MD5FILENEW MD5PRINT=`cat $MD5FILENEW` if [ -z "$MD5PRINT" ]; then echo "ERROR Recived an empty MD5PRINT thats not valid, aborting" exit 1 fi OLDMD5PRINT=`cat $MD5FILE` if [ -z "$OLDMD5PRINT" ]; then echo "Got an empty string from the oldfile, aborting" echo $OLDMD5PRINT exit 1 fi if [ "$OLDMD5PRINT" != "$MD5PRINT" ]; then echo "File has changed" echo "updating MD5 file...." echo $MD5PRINT > $MD5FILE echo "file content:" cat $MD5FILE echo `date` >> /home/log echo done else echo nothing >> /home/log fi
尝试在crontab的行尾添加>/home/papa/systems/sron.log 2>&1并观察日志以了解正在发生的事情。 最可能的原因是脚本根本不运行,例如因为错误指向了lain的答案
在CentOS系统上,我必须从用户crontab(crontab -e)上执行。 你把它放在root的crontab中,还是放在/ etc / crontab(或类似的)中? 如果你这样做,那么你需要指定你的crontab
*/1 * * * * root /bin/bash /home/papa/systems/sron.sh