linux 上的任务计划
任务计划:在未来的时间点一次性执行某任务:at ,batch
周期性执行某任务:crontab
电子邮件服务
smtp:simple mail transmission protocol
/var/spool/mail/username
mail命令
mail:进入交互式收发邮件借口
mail -s ‘subject’username@hostname
mail -s 'subject' username@hostname < /path/from/somefile
command | mail -s 'subject' username@hostname
at命令
承载未来时间运行的某作业
支持使用默认作业队列
ctrl + d 退出
at 【option】.....time
time
1:绝对时间
hh:mm mmdd【cc】yy
2:相对时间
now+ minute /hour/day/week
3:模糊时间
midnight noon teatime
常用选项
-q :at作业队列
-f: /path/fuom/somefile 从指定文件中读取需要执行的文件
-c :查看运行作业内容
-d:删除指定作业
batch:有系统自己选择在空间的时间运行指定任务
crontab:周期性任务计划
守护进程:crond
周期性任务有两类:
(1)系统cron任务,没有默认运行用户身份,所以需要额外指定运行者
/etc/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,fri,sat
# | | | | |
# * * * * * user-name command to be executed
7个字段:
1-5:指定时间点
6:已那个用户的身份运行任务
7:要运行的任务
5个时间点:
分钟:有效取值范围0-59
小时:0-23
日: 1-31
月:1-12
周:0-7
注意:几月几日和周几不能同时使用
时间表示方法:
*:对应时间点有效取值范围内的任意时间点
-:连续的时间范围
,:离散的时间范围
/#:指定频率
(2)用户cron任务:由某个用户所提交,默认已提交者的身份运行,无需额外指定
/var/spool/cron/username
vim命令:不建议
crontab:建议
crontab命令选项:
-u user:不是管理自己的任务,而是指定目标用户的cron任务,仅适用root用户
-l :列出所有的任务
-r:移除所有的任务
-e:编辑cron任务表
注意:(1)如果不想执行任何结果的通知邮件
COMMAND > /dev/null
COMMAND &> /DEV/NULL
(2) 对于crontab文件来讲,%有特殊的功用,如果出现需要使用转义符
(3)crontab 适用决定路径
2、每周一到周六的凌晨3点20分,运行cp命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD;
3、每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss;
4、每天晚上12点,取得/proc/meminfo文件中所有以S或M开头的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上类似===============分隔线;