计划任务
计划任务:有计划性的做什么事
计划任务分为两种
1.一次性计划任务 atd
2.周期性计划任务 crond
anacron 计划任务的补充 /etc/anacrontab
查看服务运行状态:
# systemctl status crond el7
# /etc/init.d/crond status el6
一次性任务
at :在指定时间执行命令
batch :在系统负载允许的时候执行
创建一次性计划任务:
at:
# at 9:40 //在9:40做什么事
at> echo hello
at> //使用ctrl+d结束编辑
at的时间格式:
1.直接指定具体时刻.如果该时刻未到,则是当天的时刻,如果已经过了,则为次日
2.now+2days 两天后的现在 minutes,hours,weeks
3.某一天的具体时刻: 9:40 2017-08-15
查询一次性计划任务: root可以查询到所有人的,普通用户只能查询到自己的
atq
at -l
# at -l
3 Sun Aug 13 09:38:00 2017 a root
删除一次性计划任务
atrm 任务编号
at -d 任务编号
at的黑白名单:
/etc/at.allow
/etc/at.deny
如果只存在allow,则为白名单
如果只存在deny,则为黑名单
如果两个文件都不存在,只有root用户能用
如果两个文件都存在,allow文件里面有的用户才能使用
周期性任务
crontab
选项:
-e 编辑计划任务
-l 查看计划任务
-u 给其他用户设置计划任务
# crontab -e
30 20 * * * /usr/sbin/init 0
分 时 日 月 周 命令使用绝对路径
field allowed values
----- --------------
minute 0-59
hour 0-23
day 1-31
month 1-12 (or names)
week 0-7 (0 or 7 is Sunday, or use names)
时间格式:
具体数字: 表示一个具体的时间
, : 表示多个具体的时间
- : 表示一个时间范围
/ : 表示频率
* : 表示所有
例:
00 10,14 * * * /usr/bin/date 每天的10:00,14:00
00 10-14 * * * /usr/bin/date 每天的10:00到14:00
00 10-14/2 * * * /usr/bin/date 10:00-14:00每两个小时:10:00,12:00,14:00
>, 2> 可以屏蔽邮件
计划任务保存在/var/spool/cron/目录以用户名作为文件名的文件中
cron黑白名单,用法同at
/etc/cron.deny
/etc/cron.allow
- 制定计划任务,每周一凌晨3:00将/var/log/下所有的文件压缩备份到/backup目录下,注意不要覆盖之前备份的内容
mkdir /backup
cd
vim tar.sh
1 #!/bin/bash
2 #备份日志
3 tar czvf /backup/date +%F
_log.tar.gz /var/log/*
chmod +x tar.sh
crontab -e
输入:
0 3 * * 1 /script/tar.sh
注:如果脚本有权限,直接接脚本的绝对路径就可以