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分钟执行一次任务

posted @ 2018-01-28 21:35  zhu12345678  阅读(139)  评论(0编辑  收藏  举报