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。
- /bin/nano
- /usr/bin/vim.basic
- /usr/bin/vim.tiny
- /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 许可协议。转载请注明出处!