在Linux系统中,其中两个最长用于预先订制工作(Schedule Task)的指令,就是Crontab和atd。前者用于订制重复性质的工作内容,而后者则适用于订制只执行一次的工作性质。
例子:
要求系统每逢周三午夜三点,把资料库做一次完整备份。 -- 用Crontab。 要求系统在这周末早上六点,自动把一个档案以FTP上传到某客户的FTP伺服器上。 -- 用atd。 --------------------------
Crontab 可以把Crontab,看成是一个纯文字档案,用于制定什么时候需要执行什么任务。要进行定制设置时,只需在指令符输入
crontab -e 就会呼叫出编辑器,让你进行设置工作。预设的设定档中,有一个简单的使用说明,不妨留心详细阅读一下。每当一个Crontab执行过后,它将会自动发送一份电邮给设置人,告诉其执行结果。
其设置是以断行来区分不同的工作行程,以空白键(或Tab)来分隔内容栏目。内容栏目共有六个,从左到右为:
Minute (分钟,0~59) Hour (时钟,00~23) Day of the Month (日子,1~28/29/30/31) Month of the Year (月份,1~12) Day of the week (周末至周六) 指令行(将使用sh来执行) 如何解读Crontab的设置:
0,20,40 22-23 * 7 fri-sat /home/mycrontest.sh
可解读其执行时间为: a.) 0,20,40 = 每至0,20,40分 b.) 22-23 = 从22时至23时 c.) * = 任一日子 d.) 7 = 七月之内 e.) fri-sat = 周五至周六 f.) /home/crontest.sh = 执行指令档《/home/crontest.sh》。
如果要实现上述例子一中的工作,crontab就会这样写: * 3 * * wed /home/backup_my_db.sh
----------------------
atd atd中,可以使用的指令包括at、atq、atrm等。
at 用于设定工作。
atq 用于查询已被设定的工作列表。
atrm 用于从列表中移除已经设定的工作。
设定工作例子: 1.) at -f action.sh 10pm
--> 于即将到来的晚上10时,执行action.sh这个指令文件。如果设定于10pm之前,则会在当天晚上10时执行任务,否则将会在明晚10时进行。
2.) at -f action.sh 21:00 tomorrow
--> 于明天21时执行指令文件。
3.) at -f action.sh 2:00 Aug 12
--> 于8月12日凌晨2时执行指令文件。
完成设置的例子:
查询工作内容 :at -c x (x=工作编号)。 不晓得是不是Ubuntu Server的设定问题,它竟然会列出一大堆垃圾之后才轮到at的设置。。。(无言~)
好了。暂时就这么多。
有兴趣要了解更多,除了查询谷歌大神之外,还可以问人(在指令符中输入man at 或man crontab)。
創用 CC 授權
Trackback
Trackback Address :: 無法向此文章發送引用
有人回应