Linux 定时执行 python脚本
HDUZN

Linux系统里有个定时任务的管理器 crontab,所以只需要编辑下定时任务,再重启下定时任务就行了。

因为是一台Ubuntu的服务器,一直开机的状态,所以开着定时任务就等于一直开着了。

CentOS如果没带的,用以下命令安装一下,一样的:

1
yum install crontabs

一、crontab命令格式详解

1.命令格式:

1
m h dom mon dow command

以上是缩写,全拼是:

1
minute(m), hour(h), day of month(dom), month(mon), day of week(dow), command

含义

  • m: 每个小时的第几分钟执行,0-59
  • h: 第天的第几个小时执行,0-23
  • dom: 每月的第几天执行,1-31
  • mon: 每年的第几个月执行,1-12
  • dow: 每周的第几天执行,0-6(0表示星期天)
  • command: 定时执行的命令

其它

  • *: 表示任何时间
  • */2: 表示每隔2分钟
  • -:表示区间,比如1-3
  • ,:表示区间不连续,比如1,3,6

2.命令举例

命令 含义 举例
* * * * * ifconfig 每天第一分钟都在执行ifconfig 命令
1 * * * * ifconfig 每天每个小时的第1分钟都在执行ifconfig 命令 01:01, 02:01, 03:01, 04:01……
0 9 * * * ifconfig 每天 9:00 执行ifconfig 命令
0 9 10 * * ifconfig 每个月的10号 9:00 执行ifconfig 命令
0 9 * * 1,2 ifconfig 每周一、周二 9:00 执行ifconfig 命令

二、编辑定时任务crontab:

运行以下命令进入编辑:

1
crontab -e

第一次输入这个命令,会让你选择一下编辑软件,有4种,就直接输入 2 回车,选择用 vim。

  1. /bin/nano
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

vim命令如果没用过不会用,也不用慌,会几个简单的命令就行了。上一篇文章 Linux vim/vi 命令简单使用 有介绍。

打开了编辑定时任务后,里面有一堆前面带 # 的行,这些都是注释内容,不用管,其实也有关于定时任务设置的示例,有这么2行:

# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

表示第2行的定时任务的意思是:在每周一的5:00 am 执行 tar 这条命令。

最后一行是命令格式:

# m h dom mon dow command

在最下面添加自己的任务就可以了。

三、定时执行python 脚本

注意,这里在定时任务中一定要用绝对路径。

比如平常运行 pythone脚本,因为添加到PATH环境变量中了,所以直接运行以下命令就可以了。

1
python3 test.py

1.python路径

所以首先要找到python3的路径,通过which命令就可以:

1
which python3

得到结果比如是:/usr/bin/python3

2.python文件的绝对路径

比如我的 test.py 存放在 /home/ubuntu/python/code/ 中。

如果你不知道当前目录是什么,执行 pwd 命令就可以得到。

最后想把 test.py 定时运行输出的内容存放到 log文件中:/home/ubuntu/tmp/test.log

所以,最终添加的这条定时任务记录是:

1
0 17 * * * /usr/bin/python3 /home/ubuntu/python/code/test.py >> /home/ubuntu/tmp/test.log

表示:每天17点将执行 test.py,把输出内容打印到 test.log文件中。

四、小结

一共3步。

1.设计好自己想要执行的 python任务

比如:

1
0 17 * * * /usr/bin/python3 /home/ubuntu/python/code/test.py >> /home/ubuntu/tmp/test.log

2.打开定时任务编辑,添加任务记录

1
crontab -e

3.重启 cron服务

1
sudo service cron restart

PS.查看定时任务内容(非编辑状态):

1
crontab -l
  • 本文标题:Linux 定时执行 python脚本
  • 本文作者:HDUZN
  • 创建时间:2021-02-08 22:10:00
  • 本文链接:http://hduzn.cn/2021/02/08/Linux定时执行python脚本/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论