最近需要在固定时间执行Python脚本,发现Ubuntu自带的Crontab可以实现所需功能
具体使用方法如下:
安装crontab(若linux上未安装):
apt-get install cron开启cron服务:
service cron startcron命令使用语法为:
设置对应的时间,将对应位置上的"*"替换为数字即可
注:默认*号为全部
也可使用区间表示:例:1-7
例如需要在周一至周五上午9:15运行,命令为为:
15 9 * * 1-5 要执行的脚本路径注:脚本路径最好使用绝对路径
接下来测试执行一个脚本test.py,执行时间为每分钟都运行:
首先执行:
crontab –e在打开的文件中添加一行:
*/1 * * * * /usr/bin/python /root/MyNewsWeb/test.py> /dev/2qw.txt注:test.py的执行结果将会输出至/dev/2wq.txt文件中
添加完成后使用快捷键:Ctrl+O
提示是否保存文件,按回车确认
使用快捷键Ctrl+X推出
一切顺利Ubuntu便会输出:
crontab: installing new crontab表示修改成功
重启Cron:
service cron restart然后就可以使用
service cron status来查看是否运行:
得到类似输出表示正常运行:
root@iZuf6ismitg2f3hxl8uyawZ:/dev# service cron status ● cron.service - Regular background program processing daemon Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-05-25 20:59:34 CST; 37s ago Docs: man:cron(8) Main PID: 5620 (cron) Tasks: 1 (limit: 2340) CGroup: /system.slice/cron.service └─5620 /usr/sbin/cron -f May 25 20:59:34 iZuf6ismitg2f3hxl8uyawZ systemd[1]: Started Regular background program processing daemon. May 25 20:59:34 iZuf6ismitg2f3hxl8uyawZ cron[5620]: (CRON) INFO (pidfile fd = 3) May 25 20:59:34 iZuf6ismitg2f3hxl8uyawZ cron[5620]: (CRON) INFO (Skipping @reboot jobs -- not system startup) May 25 21:00:01 iZuf6ismitg2f3hxl8uyawZ CRON[5772]: pam_unix(cron:session): session opened for user root by (uid=0) May 25 21:00:01 iZuf6ismitg2f3hxl8uyawZ CRON[5771]: pam_unix(cron:session): session opened for user root by (uid=0) May 25 21:00:01 iZuf6ismitg2f3hxl8uyawZ CRON[5778]: (root) CMD (/usr/bin/python /root/MyNewsWeb/test.py> /dev/3qw.txt) May 25 21:00:01 iZuf6ismitg2f3hxl8uyawZ CRON[5779]: (root) CMD (/usr/bin/python /root/MyNewsWeb/test.py> /dev/2qw.txt) May 25 21:00:01 iZuf6ismitg2f3hxl8uyawZ CRON[5772]: pam_unix(cron:session): session closed for user root May 25 21:00:01 iZuf6ismitg2f3hxl8uyawZ CRON[5771]: pam_unix(cron:session): session closed for user root正确执行,我们查看/dev/2qw.txt文件:
vi /dev/2qw.txt发现有了输出结果:
2019-05-25 21:16:01.702503表示正常执行。
若觉得自己修改参数麻烦,也可以使用这个网站自动生成cron命令:
参考资料:
https://medium.com/@gavinwiener/how-to-schedule-a-python-script-cron-job-dea6cbf69f4e
https://vexxhost.com/resources/tutorials/how-to-use-cron-jobs-for-automation-on-ubuntu-14-04/