欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用Ubuntu的Cron固定时间执行Python脚本

程序员文章站 2022-05-27 13:38:53
...

最近需要在固定时间执行Python脚本,发现Ubuntu自带的Crontab可以实现所需功能

具体使用方法如下:

安装crontab(若linux上未安装):

apt-get install cron

开启cron服务:

service cron start

cron命令使用语法为:

使用Ubuntu的Cron固定时间执行Python脚本

设置对应的时间,将对应位置上的"*"替换为数字即可

注:默认*号为全部

也可使用区间表示:例: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

来查看是否运行:

得到类似输出表示正常运行:

aaa@qq.com:/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/