1. at 一次性任务计划
at
为一次性的计划任务,即使用at
制定的任务只会执行一次,在使用时,我们首先确保atd
服务为开启状态,开启该服务的命令是service atd start
,命令具体解释如下。
- 描述:在指定的时间里执行特定任务
- 用法:at [时间点]
- 选项:
选项参数 | 解释 |
---|---|
-m | 任务结束后发邮件通知用户 |
-l | 查看用户计划任务 |
-d | 删除用户计划任务 |
-c | 查看 at 计划任务的具体内容 |
例:
[root@localhost ~]# at 22:00 #指定当天 22:00执行任务
at> tar -cjf log.tar.bz2 /var/log #任务的内容
at> echo 'hello world' #任务的内容
at> <EOT> #任务输入完成后按"Ctrl + D"结束
job 1 at 2019-06-25 12:00 #系统提示该任务编号为 1
You have new mail in /var/spool/mail/root
[root@localhost ~]# at -l #查看任务计划
[root@localhost ~]# at -c 1 #查看编号 1 的具体内容
[root@localhost ~]# at -d 1 #删除编号 1 的任务计划
at
命令格式有很多,如:
- at 1pm + 3days
#三天之后的下午 1 点 - at 12:00 2019-06-12
#指定 2019/06/12中午 12 点执行任务
2. cron 周期性任务计划
crontab 命令用法如下:
- 描述:周期性执行计划任务
- 用法: corntab [用户] [-l | -r | -e]
- 选项参数
参数 | 解释 |
---|---|
-u | 指定计划任务的用户,默认当前用户 |
-l | 查看计划任务 |
-r | 删除计划任务 |
-e | 编辑计划任务 |
-i | 使用删除任务是,需确认 |
使用 cron
计划任务指定时间时,使用 23 小时制,分钟为 0-59,日期为 0-31,月份为 1-12,周为 0-7(0 和 7 表示周天),如果指定的是时间段,可以用-
表示一段一段连续时间,使用,
表示若干个不连续的时间,使用*
表示所有时间,使用/
表示每隔多久时间。下面为cron
计划任务中时间列的解释。
第一列 | 第二列 | 第三列 | 第四列 | 第五列 | 第六列 |
---|---|---|---|---|---|
分 | 时 | 日 | 月 | 周 | 命令 |
例:
[root@localhost ~]# crontab -e
30 05 * * 5 tar -cjf log.tar.bz2 /var/log #每周五早上五点半执行备份任务
00 */3 * * * who #每天每隔 3 小时检查用户登录情况
00 10 * * 3,5 df -h >test.log #每周三周五十点检查磁盘使用情况
此外如果对执行时间要求不是非常严格,/etc/
下面的 cron.hourly、cron.daily、cron.weekly 等目录可以让用户将脚本直接存放在里面,系统会自动帮忙运行,