Crontab不执行今天做巡检的时候发现crontab不执行了,我是这么写的:0 09,15 * * * sh /beaprj/dailyreport/dailyreport.sh >/beaprj/dailyreport/`hostname`.log08 11,16 * * * sh /beaprj/dailyreport/log/backupchecklog.sh但是上面的他条命令执行,只有下面这条命令不执行。解决办法:在网上查了查说可能是路径的问题,然后我把backupchecklog.sh脚本里面的路径全部改成了绝对路径,mail命令查看报错为:cp: cannot stat `/beaprj/dailyreport/log/-.log": No such file or directory,应该还是路径的问题把前面的路径去掉报错为:cp: invalid option -- .Try `cp --help" for more information.-看来他是把那个变量认成是“-”了,奇怪,继续研究吧我原来的脚本是这样的:WORKPATH=/beaprj/dailyreport/log/BACKPATH=/beaprj/dailyreport/log/log/DATE=`date +%Y-%m-%d`#echo $DATEcd $WORKPATHls -l *.log|awk "{print $7"-"$8}"|awk -F: "{if($1 <= 12) {print"AM-" $2} else {print "PM-" $2}}">${WORKPATH}list<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
for i in `cat ${WORKPATH}list` do FILENAME=`echo $i|awk -F- "{print $3"-"$4}"|awk -F. "{print $1}"` APM=`echo $i|awk -F- "{print $1}"` cp ${WORKPATH}${FILENAME}".log" ${BACKPATH}${FILENAME}"_"${DATE}"_"${APM}.log done #echo END======== 经过反复测试发现ls -l *.log|awk "{print $7"-"$8}"|awk -F: "{if($1 <= 12) {print"AM-" $2} else {print "PM-" $2}}">${WORKPATH}list在这里倒进来的list文件里面的东西不符合,和预期的不一样,继续研究吧 后来单独执行了一个脚本为(这里把路径改成了绝对路径):ls -l /beaprj/dailyreport/log/*.log | awk -F"/" "{print $1"-"$5}">/beaprj/dailyreport/log/list执行结果list里面为-rwxrwxrwx 1 root root 1314 11-18 08:57 -EMIS-APP1.log但是这个脚本在crontab里面执行结果为:-rwxrwxrwx 1 root root 1314 Nov 18 08:57 -EMIS-APP1.log仔细看红色部分,这样执行完的后如果加上awk "{print $7"-"$8}那样显示的结果就不一样了,我也没弄明白为什么crontab与外面不一样,请高手指点,但是把上面的awk改成awk "{print $8"-"$9},crontab就会正常运行了,但是正常情况下就会有报错。到此问题解决 问题总结:这里应该不是绝对路径的问题,问题出在用ll看文件属性的时候外界显示11-18但是crontab里面执行就会显示Nov 18 就这么简单脚本部署CentOS 6.0的PXE+DHCP+TFTP+kickstart安装环境Linux NFS服务配置相关资讯 Crontab Linux基础教程
- Linux任务管理工具之 Crontab (08月06日)
- Linux基础教程:对文件打包压缩 (03月08日)
- Linux定时任务Crontab命令详解 (10/24/2015 08:58:49)
| - crontab 问题分析 (04月13日)
- Linux基础教程:tar 命令使用介绍 (12/03/2015 13:19:47)
- Ubuntu下用crontab 部署定时任务 (10/14/2015 09:17:47)
|
本文评论 查看全部评论 (0)
评论声明- 尊重网上道德,遵守中华人民共和国的各项有关法律法规
-
|