一、定义:指根据设定的时间自动执行规定的程序;
二、两种方式:(1)例行性的,每隔必定的周期要来办的事项;(2)突发性的,此次作完之后就没有的那一种,例如计算机大降价等;
三、使用指令:安全
(1)at:处理仅执行一次就结束排程的指令。
a. 执行前提是必须有服务atd支持:
/etc/init.d/atd status 查看状态
/etc/init.d/atd start 开启服务
/etc/init.d/atd stop 关闭服务
/etc/init.d/atd restart 重启服务
chkconfig atd on **设置开机启动bash
b. at的运做方式:执行at指令后,这个工做以文本的指令方式写入/var/spool/at/,等待atd服务取用或执行。 spa
c. 安全考虑,并非全部人都是at工做排程,除非你承认的帐号。具体列管可利用/etc/at.allow和/etc/at.deny两个档案,若是/etc/at.allow不存在。
/etc/at.allow 写在这个档案中的使用者才可以使用at
/etc/at.deny 写在这个档案中的使用者不可使用atrest
d. 实际运做:
eg. 使用:
例1:
at now +5minutes
at>/bin/mail root -s "testing at job" < /root/.bashrc //执行文件
at> <EOF> //Ctrl + D
例2:
at now +5minutes
at>echo "Hello" > /dev/tty1 //能够在终端机上看到显示,若是不加则须要到mailbox中查看
查看:at -l 等价于 atq
删除:at -d 等价于 atrm //取消一个在at排程中的工做
e. batch:系统有空才进行的背景任务,利用at进行指令下达。
例如:机房停电在 2009/3/17 23:00 关机,但若当时系统负载过高,则暂缓执行,操做以下:
batch 23:00 2009-3-17
at> sync
at> sync
at> shutdown -h now
at> <EOT>
job 6 at 2009-03-17 23:00
f. at有点:
1.脱机继续工做的任务 ==> 联机后下达at命令就马上脱机,直接交给系统的atd服务程序来接管,免除断网困扰。
2.某个突发事件致使你必需要进行某项工做时这个at就很好用了。
(2)crontab:设定的工做将会一直循环进行,循环间隔时间为分钟、小时、每周、每个月或每一年,由系统服务cron来控制。
a. 使用指令crontab操做,亦可编辑/etc/crontab支持;
crontab -u //仅root可操做,帮其余用户创建、移除工做排程
crontab -e //编辑crontab
crontab -l //查看crontab
crontab -r //移除全部的crontab工做排程,若是仅移除一项,则使用-e去编辑;
例子:
crontab -e
# 此时会迚入 vi 癿编辑画面让您编辑工做!注意到,每项工做都是一行。
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 时 日 月 周 |<==============指令串========================>|
// *星号:表明任什么时候刻都接受
// ,逗号:表明分隔时段的意思,例如 0 3,6 * * * command 表明3和6都适用
// -减号:表明一段时间范围内,例如8 点到 12 点乊间癿每小时癿 20 分都迚行一项工做:20 8-12 * * * command
// /n斜线: n 表明数字,亦便是『每隔 n 单位间隔』的意思,例如每五分钟执行一次,则:*/5 * * * * command
:wq 保存
例题:倘若你的女友生日是 5 月 2 日,你想要在 5 月 1 日的23:59 发一封信给他,这封信的内容已经写在 /home/dmtsai/lover.txt 内了,该如何迚行?
答:
直接下达 crontab -e 后,编辑成为:
59 23 1 5 * mail kiki < /home/dmtsai/lover.txt
那样癿话,每一年 kiki 都会收到你的这封信喔!(固然啰,信的内容就要每一年变一变啦!)
例题:假如每五分钟须要执行 /home/dmtsai/test.sh 一次,又该如何?
答:一样使用 crontab -e 迚入编辑,*/5 * * * * /home/dmtsai/test.sh
b. 为了安全性,限制使用者使用crontab,使用的限制数据有:
/etc/cron.allow:将可使用 crontab 的帐号写入其中,若不在这个档案内的使用者则不可以使用;
/etc/cron.deny:将不可使用 crontab 的帐号写入其中,若未记录到这个档案当中的使用者,就可使用。
注意:以优先级来讲, /etc/cron.allow 比 /etc/cron.deny 要优先, 而判断上面这两个档案只选择一个来限制而已,所以,建议你只要保留一个便可。事件
4.系统的配置文件:/etc/crontab
a. 对系统的例行性任务进行操做,须要编辑/etc/crontab档案,纯文本档,须要root身份来进行编辑(注意,这里不须要crontab -e管理,crontab -e实际上是/usr/bin/crontab执行档),cron服务最低侦测限制是分钟,因此cron每分钟会读取一次/etc/crontab和/var/spool/cron内的数据内容,因此只须要编辑完/etc/crontab档并存储好后,cron的设定就会自动执行了。crontab
b. crontab是读到内存当中的,因此在修改完/etc/crontab后,可能并不会立刻执行,故需重启crond服务。操做指令:/etc/init.d/crond restart内存