Linux任务计划可在未来的某一时间点执行一次任务,命令有at、batch等;也可以周期性的执行某任务,命令cron。
电子邮件服务:
smtp: simple mail transmission protocol,用于传送邮件;
pop3: Post Office Protocol
imap4: Internet Mail Access Protocol
mailx命令 – send and receive Internet mail (Centos7)
发送邮件: mail [-s ‘SUBJECT’] username[@hostname]
邮件正文的生成方式:
- 直接给出Ctrl+d提交;
- 输入重定向;
- 通过管道;
mailx -s "hi" root@localhost 内容重定向形式: mailx -s "hi" root@localhost < mail.txt 管道: echo -e "How are you?\nHow old are you?" | mail
查看邮件:mail (输入数字即可查看第几封邮件信息)
at命令:at [option] TIME
TIME:
- HH:MM [YYYY-mm-dd]
- noon, midnight, teatime
- tomorrow
- now+#{minutes,hours,days,weeks}
常用选项:
- -q QUEUE: 指定队列
- -l: 列出指定队列中等待运行的作业,相当于atq;
- -d: 删除指定的作业,相当于atrm
- -c: 查看作业的详细信息
- -f /path/from/somefile: 从指定的文件中读取任务
注意:作业的执行结果以邮件的形式通知给相关用户
batch命令
与at命令相似,指定某一时间点执行一次某任务,让系统自行选择空闲时间去执行此处指定的任务;
cron命令
1.相关的程序包
- cronie: 主程序包,提供了crond守护进程及相关辅助工具;
- cronie-anacron: cronie的补充程序,用于监控cronie任务执行状况:如若cronie中的任务在过去应该运行的时间点没有运行,则anacron会随后启动一次此任务;
- crontabs: 包含CentOS提供系统维护任务;
2.计划要周期性执行的任务提交给crond,由其来实现到点运行,分为系统cron任务和用户cron任务
- 系统cron任务:由系统维护作业,/etc/crontab目录下
- 用户cron任务:crontab命令来提交操作
# 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
时间表示法:
- 特定值:给定时间点有效取值范围内的值;
- *:给定时间点上有效取值范围内的所有值,表示“每…”
- 离散取值:#,#,#,…
- 连续取值:#-#
- 在指定时间范围上,定义步长:/#,#即为步长
用户cron:
crontab命令定义,每个用户都有专用的cron任务文件,存在路径为:/var/spool/cron/USERNAME
crontab命令:
crontab [-u user] [-l | -r | -e] [i]
- -l: 列出所有任务;
- -e: 编辑任务;
- -r: 移除所有任务;
- -i: 同-r一同使用,以交互模式让用户有选择的移除指定任务;
- -u user: 仅root可运行,代为为指定用户创建cron任务;
注意:运行结果以邮件方式通知给相关用户;对于cron任务来讲,%有特殊用途,如果在命令中要使用%,则需要用”\”转义,不过,如果把%放在单引号中,可以不用转义。
sleep命令:
sleep NUMBER[SUFFIX]…
SUFFIX:
- s:秒,默认;
- m: 分;
- h:小时;
- d: 天
评论前必须登录!
注册