一、现象
应用侧报告cront任务调用执行不成功。
在/var/log/message中发现如下现象:
2003-09-03T01:02:22 .907016+08:00 database1 CRON[144365]:(root)CMD (/back/bbc/backup.sh^M)
2003-09-03T01:02:23 .903736+08:00 database1 CRON[144654]:(root)CMD (/back/dbd/backup.sh^M)
2003-09-03T01:02:24 .90e873+08:00 database1 CRON[144225]:(root)CMD (/back/ebb/backup.sh^M)
2003-09-03T01:02:28 .903876+08:00 database1 CRON[143665]:(root)CMD (/back/cdc/backup.sh^M)
2003-09-03T01:02:29 .907226+08:00 database1 CRON[144236]:(root)CMD (/back/abd/backup.sh^M)
二、结果
cront任务无法执行完成,无任何效果。
三、解析
结合现象中的日志可发现与正常日志的不同之处在于每行后面都多出了一个^M符号。因为在Linux中这个符号是由于dos下的回车符所产生,在Linux中体现为 ^M。所以crontab文件在由windows下编辑完成后,一定要经过转化,Linux才能正确的执行。
转化方法详见这位大拿的文档:http://blog.chinaunix.net/uid-7530389-id-2050029.html
他写的也是和cront有关。
经过重新编辑crontab文件,现象恢复正常。cront任务成功执行。问题解决。当然这只是cront任务不能成功执行的原因之一。