Linux 任务计划
Linux 的任务计划
某个时间点执行一次任务
at batch
周期性
cron
at time
ctrl+d提交
at -l 显示列表
at -d 删除
常用选项
-l 显示列表
-q queue
-d 删除指定作业
-c 查看具体的作业
-f path 从指定文件中读取任务
注意 作业的执行结果会邮件通知相关用户
batch
让系统自行选定空闲时间去执行指定任务
周期性任务计划
cron
相关程序包
cronie 主程序包
cronie-anacron cronie的补充程序员
crontabs 包含centos提供系统的维护任务
计划周期性任 需要提交给crond 由其来实现到点运行
系统crond任务 系统维护作业
编写/etc/crontab
用户cron任务
crontab 命令
-、系统任务
# 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,f
ri,sat
# | | | | |
# * * * * * user-name command to be executed
例如每天晚上9点执行任务
0 21 * * * root echo 'hello world'
时间表示法
1、特定值
给定时间点有效范围内的值
2、* 给定时间点上有效范围内的任意值
相当于 每
3、离散取值
#,#,#
4、连续取值
#-#
5、在指定时间范围上 定义步长
/# #即为步长
1 */3 * * * 每三小时第一分钟执行一个任务
用户cron
crontab命令定义 每个用户都有专用的 /var/spool/cron/username
crontab
-l 列出所有任务
-e 编辑任务
-r 移除所有任务
-i 同-r一同使用 以交互方式选择性移除
-u user 以某个用户身份创建 仅 root用户
注意 任务结果以邮件通知相关用户
1、command > /dev/null
2、 command &> /dev/null
邮件服务
smtp
pop3
imap4 互联网邮件传输协议
mailx 用户邮件代理
mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-
addr] [-r from-addr] [-h hops] [-A account] [-S vari‐
able[=value]] to-addr . . .
邮件正文生成
1、直接给出 ctrl +d 提交内容
2、输入重定向
3、通过管道
mail 查看当前用户的邮件
对于cron 任务来讲 % 有特殊用途
需要转义 如果把% 放在单引号中则不需转义
思考
1、如果实现秒级任务?
2、如何实现7分钟执行一次任务