Crontab不执行
今天做巡检的时候发现crontab不执行了,我是这么写的:
0 09,15 * * * sh /beaprj/dailyreport/dailyreport.sh >/beaprj/dailyreport/`hostname`.log
08 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 $DATE
cd $WORKPATH
ls -l *.log|awk ‘{print $7″-“$8}’|awk -F: ‘{if($1 <= 12) {print”AM-” $2} else {print “PM-” $2}}’>${WORKPATH}list
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 就这么简单
Linux 下Crontab不执行
转载请注明出处:服务器评测 » Linux 下Crontab不执行
相关推荐
- *TMS 黑色星期五大促销!Ryzen 9 7950X 和 7950X3D 清仓促销!库存充足!立即订购!
- 【五年商家双十一限时送200】香港9929+CN2 大带宽2核14元/月
- DEDICATED.COM::Xeon E3-1270v5/v6 | 64GB | 2 x 512GB SSD | IPMI | 100TB @ 1GBPS | 49.99 美元/月
- *IOFLOOD.com █ RAM-ageddon:双倍增长 █ 2X RAM 同样低价
- *PLiKhost:廉价且可靠的印度尼西亚 (IIX) 专用服务器 – 雅加达
- Linux系统通过FTP上传文件到云服务器
- Linux系统通过RDP上传文件到Windows云服务器
- 宝塔面板安装Umami—小巧好用的站点统计分析系统