有的时候我们需要指定时间执行某项操作,这个时候就需要定时任务,linux有着简单的定时任务。
计划任务种类:
例行性:每隔一定周期执行一次(crontab)
突发性:执行完一次之后结束(at)
1.at:
如果你想计划将来的某一个时间执行某项事件,执行完毕之后就不需要了,那么就选at!
使用at首先确保启动atd服务,输入命令:
systemctl status atd:
1》如果提示没有这个文件,那么需要先下载atd:
sudo apt install at
2》当我们看到显示标注的样式时,那么就可以使用at命令了。
1》使用权限:
并不是所有的用户都能够使用at计划任务,我们可以使用/etc/at.allow和/etc/at.deny两个文件控制用户的使用权限。
规则:
1》先寻找/etc/at.allow这个文件,在这个文件中的用户可以使用,不在的不可以使用
2》如果没有/etc/at.allow文件则查找/etc/at.deny文件,在这个文件中的用户不可以使用,不在的可以使用
3》如果这两个文件都不存在,那么只有root用户可以使用
2》使用方法:
at [option] TIME
参数:
①-m 当at的任务完成后,即使没有输出信息也发email通知使用者任务完成
②-l 列出目前系统上面的所有使用者的at计划
③-d 取消在at计划的任务
TIME:
① ex > HH:MM
② ex > HH:MM YYYY-MM-DD
③ ex > HH:MM[am|pm] [month] [date]
④ ex > HH:MM[am|pm] + number [minutes|hours|days|weeks]
结束:
当我们编辑完之后,使用ctrl+d结束编辑
注意:
①最好以绝对路径执行命令,避免出问题
②在at运行时,会跑到当时执行at命令的那个工作目录
1》at提示加命令运行时间
2》命令执行内容代码
3》编辑完成之后【ctrl】+【d】完成编辑
3》查看当前素有任务,输入命令:
atq
4》删除指定命令:
atrm number
2.空闲任务:
系统有空才会执行的任务,它是在CPU的任务负载小于0.8的时候,才执行任务
batch
3.循环计划任务:
权限:
循环计划任务同样像at计划任务那样有着它的作用范围,它同样拥有配置文件/etc/cron.allow和/etc/cron.deny两个配置文件:
①/etc/cron.allow存在的时候,在这个文件中的用户可以使用crontab命令,不在这个文件中的用户不可以使用crontab命令
②/etc/cron.allow不存在时,在/etc/cron.deny文件中的用户不可以使用crontab命令,不在的可以使用crontab命令
③两个文件都不存在的时候,只有root可以使用
命令:
crontab -e
①每一个任务占一行
1》* 代表任何时刻都接受
2》, 代表分隔时段
3》- 代表一段时间范围内
4》/n n为数字,代表每隔n单位时间
5》命令执行时最好使用绝对路径
4.配置文件:
linux下的所有东西都是文件,那么计划任务的配置文件在哪呐?
使用编辑器打开:
vi /etc/crontab:
1》我们可以看到标注的地方有三个定时,分别是:
①每天的6:25执行
②每周周末的6:47执行
③每个月1号的6:52执行
2》我们查看/etc的目录结构:
3》我们打开文件,发现里面是各种脚本:
那么我们是不是把脚本放到这些目录下,是不是也可以定期执行呐?
是的!我们把脚本放到对应的文件夹下就会定期执行
1》放到cron.daily下每天执行一次
2》放到cron.weekly下每周执行一次
3》放到cron.monthly下每月执行一次
当然我们直接在/etc/crontab文件下编辑也会定期执行我们的定时任务,每个任务是一行,格式是: