【学习记录】预先定制工作 — atd ,Crontab

在Linux系统中,其中两个最长用于预先订制工作(Schedule Task)的指令,就是Crontab和atd。前者用于订制重复性质的工作内容,而后者则适用于订制只执行一次的工作性质。

例子:

  1. 要求系统每逢周三午夜三点,把资料库做一次完整备份。 — 用Crontab。
  2. 要求系统在这周末早上六点,自动把一个档案以FTP上传到某客户的FTP伺服器上。 — 用atd。
————————–

Crontab
可以把Crontab,看成是一个纯文字档案,用于制定什么时候需要执行什么任务。要进行定制设置时,只需在指令符输入crontab -e就会呼叫出编辑器,让你进行设置工作。预设的设定档中,有一个简单的使用说明,不妨留心详细阅读一下。每当一个Crontab执行过后,它将会自动发送一份电邮给设置人,告诉其执行结果。

其设置是以断行来区分不同的工作行程,以空白键(或Tab)来分隔内容栏目。内容栏目共有六个,从左到右为:

  1. Minute (分钟,0~59)
  2. Hour (时钟,00~23)
  3. Day of the Month (日子,1~28/29/30/31)
  4. Month of the Year (月份,1~12)
  5. Day of the week (周末至周六)
  6. 指令行(将使用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时执行指令文件。

完成设置的例子:
用戶插入圖片

查询工作列表:直接在指令符中敲入atq即可。
用戶插入圖片

查询工作内容:at -c x (x=工作编号)。
不晓得是不是Ubuntu Server的设定问题,它竟然会列出一大堆垃圾之后才轮到at的设置。。。(无言~)

删除工作:atrm x (x = 工作编号)。
用戶插入圖片

好了。暂时就这么多。
有兴趣要了解更多,除了查询谷歌大神之外,还可以问人(在指令符中输入man at 或man crontab)。

4 Replies to “【学习记录】预先定制工作 — atd ,Crontab”

Comments are closed.