使用sudo systemctl status cron.service查看cron服务是否存在:
使用crontab -e编辑定时任务(如果使用sudo crontab -e则用户变成了root,而不是当前用户,是两个不一样的环境),编辑格式参考菜鸟教程:
但要注意的是crontab的执行环境不是你打开的terminal里的环境,是独立的环境,如果使用的是anaconda,请务必补全对应虚拟环境中完整的python地址,如/home/xxx/anaconda3/envs/xxx/bin/python yourScript.py。或者编写一个sh脚本,在开头激活需要的环境变量文件,如. /etc/profile,. ~/.bash_profile等。
此外,由于本人在py文件里导入了自己定义的库,所以需要改变当前执行目录,可以在py文件中加上os.chdir(‘/path/your/directory’)来改变。
使用crontab -l可以查看已有的定时任务,日志记录在/var/log/cron.log中,但/var/log/cron.log可能没有,需要手动开启。修改rsyslog文件:vi /etc/rsyslog.d/50-default.conf ,将红框的行注释解除(#cron.* 前的 # 删掉):
之后,重启rsyslog服务:sudo systemctl restart rsyslog.service,接着重启cron任务:sudo systemctl restart cron.service,/var/log/cron.log就出现了。