1.使用crontab时,一定要注意当前用户是谁,是root用户还是其他用户,我是在root用户不执行,切换到普通用户下才执行成功定时任务。
2.在使用crontab中一定要用绝对路径,不管是命令还是IO操作,都要使用绝对路径才行。查看命令的绝对路径是which 命令,如查看python3的绝对路径为which python3。
3.编写crontab时,最好在后面写>> ~/xx.log,可以方便查看执行的print打印过程。
如:28 23 * * * /usr/local/bin/python3 /home/daniel/autoScripts/recordUpload/recordUpload.py >> ~/rU-log.log
4.最好打开crontab的日志,这样可以方便查看是否执行了定时任务,执行sudo vim /etc/rsyslog.d/50-default.conf,找到cron.* /var/log/cron.log 删掉前面的注释。
之后执行如下操作进行重启操作:
sudo service rsyslog restart
sudo service cron restart
查看crontab日志:less /var/log/cron.log,按q退出。
5.如要以按秒执行crontab,在代码中加入sleep,如每分钟的第10秒执行date命令:* * * * * sleep 10; /bin/date,注意一定要跟上分号。
6.cron相关的命令
sudo service cron start // 启动服务
sudo service cron stop // 关闭服务
sudo service cron restart // 重启服务, 添加新的crontab任务后,一定要重启服务
ps -aux|grep cron // 查询crontab状态,默认情况下,是自启动的。