一、Linux定时任务简介
计划任务是需要在指定时间执行的任务或者是周期性执行的任务,比如凌晨3点重启设备,每周对日志文件备份等。Linux系统会内置at和cron服务,at服务用来在指定时间执行任务,cron用来周期性执行任务。今天我们只讲一下cron就已经可以对付日常工作了
python在LINUX中定时任务如何写一个小例子
二、cron周期性任务
cron周期性任务依赖于系统后台的crond进程,我们首先确认cron服务是否开启,执行命令:
systemctl status crond
如果出现如下结果,就表示crond任务已经开启 :
status_croud.png
(1).执行命令crontab可以使我们创建定时任务,该常用命令如下:
因此,执行命令:
crontab -e #表示新创建或编辑定时任务
crontab -r #表示删除定时任务
crontab -l #表示显示定时任务
(2).创建定时任务需要遵循一定的规范, 在crond文件中,前面的五列都代表一个时间,从左到右分别是分钟、小时、天、月、星期,如果不做设置,可以用*跳过,最后一列表示要执行的任务
在每一列对应的地方写入具体数值就可以表示定时执行,还可以使用短杠表示一段时间,如果*后面加入斜杠,则表示没隔该端时间执行一次。
crond定时任务时间设置示例如下:
0 3 * * * #表示每天3点执行
0 */3 * * * #表示每隔3小时执行
0 3 2 * 3 #表示每个月2号的3点或者每周三的3点执行
* * * * * # 表示每分钟执行一次
* 1-10 * ** #表示每天的1点到10执行
三.cron定时任务分为系统的定时任务和用户的定时任务。crond定时任务主要文件如下:
(1)、/var/spool/cron/
该文件主要用于存放用户设置的定时任务,会以用户名来命名,当用户创建cron定时任务时,
就会在该目录下生成一个同名文件,该文件存储了用户定时任务的具体信息。
2、/etc/cron.deny /etc/cron.allow
与at定时任务类似,cron.allow存放了运行创建定时任务的用户,而cron.deny则存放了不允许创建定时任务的用户,
只有当cron.deny不存在时,cron.allow才会生效。
3、/etc/cron.monthly/
该文件用来存放系统每个月需要执行的脚本
4、/etc/cron.weekly/
该文件用来存放系统每周需要执行的脚本
5、/etc/cron.daily/
该文件用来存放系统每天需要执行的脚本
6、/etc/cron.hourly/
该文件用来存放系统每小时需要执行的脚本