1. 介绍
本篇文章主要介绍在linux服务器上定时运行.py程序脚本,并将运行的结果保存在相应的执行结果文件中
1.1环境
- Python 3.6.8
- pip 9.0.3
版本查看方式:
# python版本查看 [root@node-2 ~]# python --version Python 3.6.8 # pip版本查看 [root@node-2 ~]# pip --version pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
2. py程序上传及测试
2.1py程序准备
当前代码的功能为获取当前的时间,并打印输出测试代码,脚本的文件名为get_time.py
import datetime now = datetime.datetime.now() print(now) print("======================运行结束========================")
2.2脚本上传到服务器
通过XFTP等方式,将文件上传到服务器相应的路径。
当前文件上传的路径为:
/root/python-py/get_time
2.3运行测试文件
输入python + 文件名 ,回车后,可以查看运行结果
3. shell运行脚本的创建及测试
3.1新建.sh脚本文件
进入文件夹路径,输入vim+文件名,新建一个sh后戳文件
[root@node-2 get_time]# vim /root/python-py/get_time/get_time.sh
#!/bin/bash . /etc/profile touch /root/python-py/get_time/get_time.log nohup python /root/python-py/get_time/get_time.py >> /root/python-py/get_time/get_time.log 2>&1 &
3.2为sh脚本赋予可执行权限
[root@node-2 get_time]# chmod u+x /root/python-py/get_time/get_time.sh
赋权前:
赋权后:
3.3测试sh脚本
在脚本所在目录下,输入./脚本运行,输入ll看到多了一个日志文件
进入此日志文件查看,可以看到为py程序运行的结果,证明测试成功
4. crontab定时运行
输入crontab -e,回车进入crontab,添加定时任务代码并保存退出
[root@node-2 get_time]# crontab -e
举例:每天早上 06:30 执行一次sh脚本 ,编辑页面添加下面代码保存退出
30 6 * * * /root/python-py/get_time/get_time.sh
4.1cron表达式介绍
cron表达式一般用在定时任务中,通过特定的规则指定时间来设置任务调度,比起只能设置重复时间的simple模式更灵活
表达式结构:cron表达式从左到右用空格分隔 秒 分 时 月份中的日期(DayofMonth) 月份 星期中的日期(DayofWeek) 年
各字段的含义和允许的值:
字段 |
允许值 |
秒(Second) |
0~59的整数 |
分(Minute) |
0~59的整数 |
小时(Hour) |
0~23的整数 |
日期(DayofMonth) |
131的整数 |
月份(Month) |
1~12的整数 |
星期(DayofWeek) |
17的整数 |
年(Year可为空) |
1970-2099 |
常见表达式举例:
每隔10秒执行一次:*/10 * * * * ? 每隔1分钟执行一次:0 */1 * * * ? 每天21点执行一次:0 0 21 * * ? 每天凌晨1点执行一次:0 0 1 * * ? 每月最后一天23点执行一次:0 0 23 L * ? 每周星期天凌晨1点实行一次:0 0 1 ? * L 在26分、29分、33分执行一次:0 26,29,33 * * * ?