linux计划任务:
未来的某个时间执行一次任务,或者周期性执行某个任务,执行结果会通过邮件通知。
定时任务:at batch
周期性任务:crontab
系统任务调度:
/etc/crontab
用户任务调度
/var/spool/cron
mail
mail -s “邮件主题” -c “抄送地址” -b “密送地址” -f 发送人地址 -F 发件人姓名 <
echo “test” | mail -s test nebulalinux03
at:定点执行一次某任务
1、时间定义
hh:mm 12:00
noon teatime
AM PM 8am 9pm
2019-8-11 2019/8/11
+ 5 minutes hours days weeks
today tomorrow
2、语法结构
at 选项 参数
-
-q 列出任务
-
-f 从文件中读取
-
-l 列出任务
-
-d 指定删除
-
-v:列出已执行未删除的任务
-
-V:版本号
-
-c:查看作业内容
3、相关命令
atq:列出用户的计划任务,如果是超级用户将列出所有的用户的任务,结果的输出格式为作业号、日期、小时、队列和用户名
atrm:根据Job number删除at任务
crond命令
时间表示法:
1、特定值
40 8 * * *
2、*
* 8 * * *
3、连续值
8-10 9-17
4、离散值
8,10,12
5、定义时间点 时间步长
/4
注意:定义步长需要能被整除
5 * * * * 每小时执行一次,每小时的第五分钟执行一次
3 4 * * 5 每周执行一次,
5 6 7 * * 每月执行一次,
7 8 9 10 * 每年执行一次
8 9 * * 3,4 每周三四的九点八分执行
0 8,9,20 * * 6,7 每周六周天的八点整九点整二十点整执行一次
*/5 * * * * 每隔五分钟执行一次
crontab 语法结构:
crontab [-u user] [-l | -r | -e] [-i] [-s]
- -e:编辑任务
- -l:列出任务列表
- -r:移除任务
- -i:移除时确认,与-r一起使用
- -u:root用户可为指定用户管理cron任务
练习作业
1、每一分钟执行一次commond
2、每小时的第3分钟和第15分钟执行一次command
3、从早上的8点到12点的第3分钟和第15分钟执行一次command
4、每隔两天的上午11点到18点之间的第3分钟和第15分钟执行一次command
5、每晚18点重启网卡配置
6、每周天凌晨1点重启apache 服务
7、每小时重启一次 commond 服务
8、每月的4号与每周的周一到周五执行网卡重启
9、每年的1月1号重启网卡
10、每晚的11点到早上7点之间,每小时重启一次网卡
计划任务规范:
1、脚本要规范,脚本存放位置要规范,便于维护
2、定时任务要写注释
3、执行的脚本要带绝对路径
4、执行结果的标准输出或者错误输出 >/dev/null
5、可以以命令完成的任务,也要写在脚本
6、分用户执行