时间:2022-06-27 08:49:25 | 栏目:Python代码 | 点击:次
正式配置前,先编写一段 Python 脚本,实现日志写入文件操作:
import os import sys import logging current_path = os.getcwd() # 获取当前目录 logging.basicConfig(level=logging.INFO, filename=current_path + '/new.log', filemode='a', format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s' ) logging.info("写入日志")
使用 crontab
进行定时任务的处理,如果没有安装可以自行百度进行设置。
在正式使用 crontab 前,需要提前了解一下 crond , crond 和 crontab 是密切相关了, crond 是 linux 中用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows的计划任务类似, crontab 是一个编辑或者说是管理定时任务的工具。
简单理解就是 crond是一个服务,crontab是一个命令。
与之相关的命令有:
yum install crontabs
systemctl enable crond (开机启动)
systemctl start crond(启动 `crond` 服务)
systemctl stop crond(停止服务)
systemctl restart crond (重启服务)
systemctl reload crond (重载配置文件)
systemctl status crond (查看状态)
测试状态之后,展示为active(running)
即表示成功。
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command
在正式开始前,可以使用 crontab -l 查看一下已经开启了哪些定时任务。
crontab -l
其余 crontab 常见的命令如下:
上文已经提及了一个定时任务的6个字段,其取值分别为:
minute hour day month week command
上述字段分别是:分,时,日,月,周,命令
crontab -e
:直接写入定时任务
*/1 1-2 * * * root /usr/bin/python3 /var/test1.py */1 1-2 * * * root /usr/bin/python3 /var/test2.py
vim /etc/crontab
:文件形式添加任务
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 1 * * * * /usr/bin/python3 /usr/test/test.py
重新加载配置:
service crond reload
重启cron
service crond restart
两种方法的区别:
crontab -e
对应的是用户级, vim /etc/crontab 对应的系统级的。crontab -e
与 vim /etc/crontab 修改语法格式不一样,后者多一个user指定。查看文件的权限:
ls /etc/crontab -lh
查看任务是否添加:
crontab -l -u root
在 centos 查找文件:
find / -name xxxx.conf # 在根目录查找 find /var -name xxxx.conf # 在 var 目录查找