linux为我们准备了两种计划任务,一种是只执行一次的at计划任务,另一种是周期性执行的cron。
at一次性计划任务
用途:在某一固定的时间执行特定命令
用法:at 时间 #需要atd服务开启 systemctl start atd 开启服务
选项: -m 当计划任务执行结束后发邮件给客户
-l 查看用户计划任务
-d 删除用户计划任务
-c 查看at计划任务的具体内容
[root@localhost ~]# at 20:00 #指定将在当天20:00执行命令,后可跟年月日 例2018-8-17
at> pyhon3 test.py
at> shutdown -h now
at> <EOT>
job 1 at Wed Aug 15 20:00:00 2018 #系统提示有编号为1的计划任务
[root@localhost ~]# at -l #查看计划任务列表
[root@localhost ~]# at -c 1 #查看该计划的详细信息
[root@localhost ~]# at -d 1 #删除计划编号为1的计划
cron 周期性计划任务
用途:为每个用户维护周期性的计划任务文件
用法:crontab -u 用户名 -l|-r|-e #需要
选项:-u 指定计划任务的用户,默认为当前用户
-l 查看计划任务·
-r 删除计划任务
-e 编辑计划任务
-i 删除时提示是否确认
cron文件格式
分 时 日 月 周 命令
[root@localhost ~]# crontab -e #给当前用户
23 23 * * 5 python3 test.py #每周五晚上执行test
centos 自定义了很多自动执行的任务脚本,分别存放在/etc下的cron.hourly,cron.daily,cron.weekly中,如果你有需要每天执行的脚本可以放在cron.daily目录下面。
计划任务控制
为了控制用户随意定义自己的计划任务,管理员可以进行ACL访问控制。
at的控制文件分别为 允许 /etc/at.allow
拒绝 /etc/at.deny
crontab的控制文件分别为
允许 /etc/cron.allow
拒绝 /etc/cron.deny
只有allow时 只允许allow用户添加计划
allow与deny共存时 只允许allow中的用户添加
只有deny时 除deny中的用户都可添加