任务计划:
1、在未来的某个时间点执行一次某任务: at batch
格式: at time 直接用 at 时间 即可 at -l 查看计划列表
at> COMMAND
at> Ctrl+d
指定时间:
绝对时间:HH:MM DD.MM.YY MM/DD/YY
相对时间:now+#
单位:minutes,hours,days,weeks
模糊时间:noon,midnight,teatime
命令的执行结果将以邮件的形式发送给安排任务的用户
at -l查看未执行的任务计划 at -l=atq
at -d JOB_ID 取消未执行的任务计划 at -d 计划任务ID号
at的黑名单和白名单的文件/etc/at.deny /etc/at.allow
[root@localhost ~]# at -l
[root@localhost ~]# at -l
32016-12-17 08:36 a root
22016-12-17 08:28 a root
[root@localhost ~]# at -d 2
[root@localhost ~]# at -l
32016-12-17 08:36 a root 编号2任务计划已取消
Usage:
[root@localhost ~]# at now+3minutes 3分钟后执行
at> ls /var 需要执行 ls/var 命令
at> cat /etc/fstab 需要执行 cat /etc/fstab 命令
at> <EOT> 按ctrl+d完成任务计划
job 1 at 2016-12-17 08:16
[root@localhost ~]#
2、周期性地执行某任务:执行结果将以邮件的形式发送给管理员
cron:自身是一个不间断运行的服务
anacron: cron的补充,能够实现让cron因为各种原因在过去的时间该执行而未执行的任务在恢复正常 执行一次;
cron配置文件:/etc/crontab
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash #定义执行脚本的shell为/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin #定义脚本执行的环境变量位置
MAILTO=root #执行结果发送给root用户
HOME=/ #家目录
# run-parts:表示按照该目录或文档的顺序执行里面的所有命令脚本
01 * * * * root run-parts /etc/cron.hourly 每小时的第一分钟
02 4 * * * root run-parts /etc/cron.daily 每天的4点02分
22 4 * * 0 root run-parts /etc/cron.weekly 每周日的4点22分
42 4 1 * * root run-parts /etc/cron.monthly 每月1日的4点42分
cron:
系统cron任务:
配置文件/etc/crontab
格式: 分钟 小时 天 月 周 用户 任务
用户cron任务:
配置文件/var/spool/cron/USERNAME
格式: 分钟 小时 天 月 周 任务
时间的有效取值:
分钟:0-59 小时:0-23 天:1-31 月:1-12 周:0-7,0和7都表示周日
时间通配表示:
*:对应的所有有效值
3 * * * * : 每小时的第3分钟
3 * * * 7 :每周日的每个小时的第3分钟
13 12 * * * :每天的12点13分钟
,: 离散时间点:
10,40 02 * * 2,5 :每周二,周五的2点10分和2点40分
-:连续时间点:
10 02 * * 1-5 :每周一到周五的2点10分
/#: 对应取值范围内每多久一次 比每单位小的时间必须固定某个时间点
*/3 * * * * :每隔3分钟
10 */2 * * * : 每隔2小时执行一次
10 06 */2 * * : 每隔2天执行一次
cron的环境变量:cron执行所有命令都去PATH环境变量指定的路径下去找
3、用户任务的管理:
crontab 要想crontab执行,crond服务必须正在运行,
查看运行状态 service cront status
[root@localhost ~]# service crond status
crond (pid 3733) 正在运行...
-l:列出当前用户的所有cron任务
-e:编辑cron任务,按下a进行输入,按esc再输入:wq保存退出。
[root@localhost ~]# crontab -e 先输入crontab -e 再按a进行编辑,
编辑完后按esc再输入:wq保存退出。
*/3 * * * * /bin/echo "how are you?"
-r:删除所有cron任务,只移除某一条计划任务,只需crontab -e编辑删除其中的任务即可
-u:USERNAME 管理其用户的cront任务
anacrontab: /etc/anacrontab
本文出自 “学linux历程” 博客,原文地址: http://woyaoxuelinux.blog.51cto.com/5663865/1883578