Linux计划任务:
未来的某个时间执行一次任务,或者周期性执行某个任务,执行结果会通过邮件通知
定时任务:at batch
周期性任务:crontab
系统任务调度:/ect/crontab
用户任务调度:/var/spool/cron
mail -s “邮件主题” -c “抄送地址” -b"密送地址" -f 发送人邮址
-F “发送人姓名”(Ctrl+c终止)
echo “test” |mail -s test localhost
at命令
1、时间定义
hh:mm 12:00
noor 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 查看作业内容
atq
atrm
cron命令
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
时间表示法:
1、特定值
40 8 * * *
2、*
*8 * * *
3、连续值
8-10 9-17
4、离散值
8,10,12
5、定义时间点 时间步长
/4(每隔四小时)
注意:定义步长需要能被整除
5 * * * * (每小时的第五分钟执行一次)
3 4 * * 5(每周5的4点零3分执行一次)
5 6 7 * * (每月7号的6点5分执行一次)
7 8 9 10 *(每年10月9号8点7分执行一次)
8 9 * * 3,4(每周3周4的9点8分执行一次)
*/5 * * * * (每隔5分钟执行一次)
crontab语法结构:
crontab [-u user] [-l | -r | -e] [-i] [-s]
-e:编辑任务
-l:列出任务列表
-r:移除任务
-i:移除时确认,与-r一起使用
-u:用户
1、每一分钟执行一次commond
* * * * * ll
2、每小时的第3分钟和第15分钟执行一次
3,15 * * * * ll
3、从早上的8点-12点的第3分钟和第15分钟执行一次commond
3,15 8-12 * * * ll
4、每隔两天的上午11点到18点之间的第3分钟和第15分钟执行一次commond
3,15 11-18 */2 * * ll
5、每晚18点重启网卡配置
0 18 * * * service network restart
6、每周天凌晨1点重启apache服务
0 1 * * 7 systemctl restart apache
7、每小时重启一次commond服务
0 * * * * ll
8、每月的4号与每周的周1到周5执行网卡重启
* * 4 * 1-5 service network restart
9、每年的1月1号重启网卡
* * 1 1 * service network restart
10、每晚的11点到早上7点之间,每小时重启一次
0 23-7 * * * service network restart
计划任务规范:
1、脚本要规范,脚本存放位置要规范,便于维护
2、定时任务要写注释
3、执行的脚本要带绝对路径
4、执行结果的标准输出或者错误输出 >/dev/null
5、可以以命令完成的任务,也要写在脚本
6、分用户执行
anacron:计划任务