at
用于处理仅执行一次就结束的指令 必须要atd服务
at运作方式
使用at指令产生所要运作的工作,将这个工作以文本的方式写入/var/spool/at/目录内,atd服务进行取用于执行
1.先搜寻/etc/at.allow这个文件 写在这个文件中的使用者才能使用at
2.如果/etc/at.allow不存在,就寻找/etc/at.deny,卸载这个文件中的使用者不能使用at
3.如果两个文件都不存在,只有root可以使用at指令
at [-mldv] TIME
at -c 工作号码
-l:列出目前系统上面的所有该用户的at排程
-d:取消一个在at排程的工作
-c:列出后面接的该项目工作的实际指令内容
TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,格式有:
HH:MM ex> 04:00
在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此工作。
HH:MM YYYY-MM-DD ex> 04:00 2015-07-30
强制规定在某年某月的某一天的特殊时刻进行该工作!
HH:MM[am|pm] [Month] [Date] ex> 04pm July 30
也是一样,强制在某年某月某日的某时刻进行!
HH:MM[am|pm] + number [minutes|hours|days|weeks]
ex> now + 5 minutes ex> 04pm + 3 days
就是说,在某个时间点『再加几个时间后』才进行。
atq // 查询目前主机上面由多少的at工作排程
atrm 3//将第3个工作移除
crontab
所设定的工作会一直循环下去 需要crond服务
- /etc/cron.allow 不在这个文件的使用者不可使用cron
- /etc/cron.deny 不在这个文件的使用者可以使用cron
优先级allow高于deny,建议只保留一个文件来限制
crontab建立工作例程后会被记录到/var/spool/cron中,执行的每一项工作会被记录到/var/log/cron中
crontab [-u username] [-l|-e|-r]
-u:只有root才能执行
-e:编辑crontab的工作内容
-l:查询crontab的工作内容
-r:移除所有crontab的工作内容
每项工作的格式
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 周(0-7) 指令
*:表示无论何时都接受
,:表示分隔时段 比如 0 3,6 * * * 表示每天的3点于6点
-:代表一段时间范围内 比如 20 8-12 * * * 表示8点到12点每20分钟都进行一项工作
/n:n为数字 表示每隔n单位间隔 比如 */5 * * * * 表示每5分钟进行1次
如果是系统的例行性任务 只需要编辑/etc/crontab文件就行了,crontab与at一样都是每分钟读取1次
对于过期的任务 可以调用anacron来执行