文章目录
- 前言
- crontab简介
- 基本语法
- 定时任务具体内容
- python 脚本定时任务
前言
在服务器上定时执行任务有两种方式,一种是at定时任务,一种是crond任务调度,at命令是一次性定时计划任务,at的守护进程 atd会以后台模式运行,检查作业队列来运行。默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了,crond任务调度可以周期性的执行某一任务,只需要进行简单的配置即可。
crontab简介
基本语法
crontab [选项]
-
-e编辑crontab定时任务
-
-l查询crontab定时任务
-
-r删除当前用户的所有定时任务
-
eg:crontab -e #进行定时任务的编辑
定时任务具体内容
例:
*/1 * * * * ls -l /etc/ > /tmp/to.txt
解释:
每分钟执行一次ls -l查看/etc/目录下的所有文件内容,将查看结果输出到/tmp/to.txt文件内(这个输出的过程称为重定向)
关于如何定时可以看下面两个表格:
python 脚本定时任务
查看安装python解释器的位置:
whereis python
设置定时任务(设置之前可以先在控制台测试一下脚本能不能跑通)
执行周期 Python解释器安装的位置 -u python脚本存放的位置 >> 执行脚本生成的日志
10 7 * * * /root/anaconda3/bin/python3.7 -u /root/zscDemo/pythonDemo/dayReport/test.py >> /root/zscDemo/pythonDemo/dayReport/test.log
* * * * * /root/anaconda3/bin/python3.7 -u /root/zscDemo/pythonDemo/dayReport/main.py >> /root/zscDemo/pythonDemo/dayReport/main.log
解释:
这里的-u不写的话python脚本内的打印结果没有办法打印到日志内,-u代表的是执行过程中禁用缓冲区。禁用缓冲区print的东西会直接重定向到后面的文件内。
关于>>重定向符。两个>代表的是在原有的文件内追加,一个的话是覆盖。
这里只介绍了如何定时一个定时器,如何使用定时器快速的配置一个python脚本并进行重定向设置,如果自己用还可以,如果想真真的运用到实际生产过程中还需要自己去琢磨琢磨。可以去CSDN、菜鸟教程、哔哩哔哩上进行深入学习。相应的资源还是挺丰富的。