我使用Python Plan构建crontab。对应的crontab内容是:
root@iZ2573cw0yvZ:~# cat /var/spool/cron/crontabs/root
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/tmpbpaH93 installed on Wed May 11 19:58:04 2016)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
# Begin Plan generated jobs for: main
0 * * * * mv /root/HybridDB_dawn_socket/twistd.log.* /root/HybridDB_dawn_socket/log/
0 * * * * /root/plan_lab/sampleDevNr.sh
# End Plan generated jobs for: main
其中mv log工作正常,但是sampleDevNr.sh工作不正常。该文件内容:
#!/bin/sh
logfile="/root/HybridDB_dawn_socket/devNr.log"
date >> $logfile
redis-cli -a myredis::password scard onlineDevices >> $logfile
如果手动运行/root/plan_lab/sampleDevNr.sh,返回为:
Fri May 13 10:55:12 CST 2016
2100
代表某个时刻返回21,代表有2100人在线。但是我检查/root/HybridDB_dawn_socket/devNr.log文件:
Wed May 11 19:46:25 CST 2016
1300
Wed May 11 19:46:40 CST 2016
1350
Wed May 11 19:48:47 CST 2016
1322
Wed May 11 19:56:37 CST 2016
1357
Wed May 11 20:00:01 CST 2016
Wed May 11 21:00:01 CST 2016
Wed May 11 22:00:01 CST 2016
Wed May 11 23:00:01 CST 2016
因为crontab是每小时运行的。这意味着logfile里面只有时间,而真正需要采集的数据却没有采集到。
我检查过了路径和权限,不知道为何会出现这种结果,求教Linux运维老鸟指点。
楼主你的问题解决了吗,我也遇到和你相同的问题,调度有时执行脚本部分内容有时只会打印log而不执行实际操作,手动执行一直没问题