1.1 指令<code>at</code>安裝
從檔案或标準輸入中讀取指令并在将來的一個時間執行,隻執行一次。<code>at</code>的正常執行需要有守護程序<code>atd.</code>
1.2 使用
如果不使用管道<code>|</code>或指定選項<code>-f</code>的話,<code>at</code>的執行将會是互動式的,需要在at的提示符下輸入指令:
選項<code>-l</code>或指令<code>atq</code>查詢任務
到達時間後任務被執行,生成一個新檔案file并儲存echo的輸出内容
<code></code>
<code>at</code>指定時間的方法:
1)<code>hh:mm</code>小時:分鐘(當天,如果時間已過,則在第二天執行)
2)<code>midnight</code>(深夜),<code>noon</code>(中午),<code>teatime</code>(下午茶時間,下午4點),<code>today</code>,<code>tomorrow</code>等
3)12小時計時制,時間後加<code>am</code>(上午)或<code>pm</code>(下午)
4)指定具體執行日期<code>mm/dd/yy</code>(月/日/年)或<code>dd.mm.yy</code>(日.月.年)
5)相對計時法<code>now + n units</code>,now是現在時刻,n為數字,units是機關(minutes、hours、days、weeks)
如明天下午2點20分執行建立一個目錄
選項<code>-d</code>或指令<code>atrm</code>表示删除任務
可以使用管道<code>|</code>或選項<code>-f</code>讓<code>at</code>從标準輸入或檔案中獲得任務
<code>atd</code>通過兩個檔案<code>/etc/at.allow</code>和<code>/etc/at.deny</code>來決定系統中哪些使用者可以使用<code>at</code>設定定時任務,它首先檢查<code>/etc/at.allow</code>,如果檔案存在,則隻有檔案中列出的使用者(每行一個使用者名),才能使用at;如果不存在,則檢查檔案<code>/etc/at.deny</code>,不在此檔案中的所有使用者都可以使用at。如果<code>/etc/at.deny</code>是空檔案,則表示系統中所有使用者都可以使用at;如果<code>/etc/at.deny</code>檔案也不存在,則隻有超級使用者(root)才能使用at。
系統中每個使用者都可以擁有自己的<code>cron table</code>,同<code>atd</code>類似,<code>crond</code>也有兩個檔案<code>/etc/cron.allow</code>和<code>/etc/cron.deny</code>用來限制使用者使用cron,規則也和<code>atd</code>的兩個檔案相同。
/etc/cron.deny 表示不能使用crontab 指令的使用者
/etc/cron.allow 表示能使用crontab的使用者。
如果兩個檔案同時存在,那麼/etc/cron.allow 優先。
如果兩個檔案都不存在,那麼隻有超級使用者可以安排作業。
每個使用者都會生成一個自己的crontab 檔案。這些檔案在/var/spool/cron目錄下
crontab -u 指定一個使用者
crontab -l 列出某個使用者的任務計劃
crontab -r 删除某個使用者的任務
crontab -e 編輯某個使用者的任務
對于系統級别的定時任務,這些任務更加重要,大部分linux系統在/etc中包含了一系列與 cron有關的子目錄:<code>/etc/cron.{hourly,daily,weekly,monthly}</code>,目錄中的檔案定義了每小時、每天、每周、每月需要運作的腳本,運作這些任務的精确時間在檔案<code>/etc/crontab</code>中指定。如:
<code>[root@node1 spool]</code><code># cat /etc/crontab</code>
<code>SHELL=</code><code>/bin/bash</code>
<code>PATH=</code><code>/sbin</code><code>:</code><code>/bin</code><code>:</code><code>/usr/sbin</code><code>:</code><code>/usr/bin</code>
<code>MAILTO=root</code>
<code>HOME=/</code>
<code># For details see man 4 crontabs</code>
<code># Example of job definition:</code>
<code># .---------------- minute (0 - 59)</code>
<code># | .------------- hour (0 - 23)</code>
<code># | | .---------- day of month (1 - 31)</code>
<code># | | | .------- month (1 - 12) OR jan,feb,mar,apr ...</code>
<code># | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat</code>
<code># | | | | |</code>
<code># * * * * * user-name command to be executed</code>
<code># run-parts</code>
<code>01 * * * * root run-parts </code><code>/etc/cron</code><code>.hourly</code>
<code>02 4 * * * root run-parts </code><code>/etc/cron</code><code>.daily</code>
<code>22 4 * * 0 root run-parts </code><code>/etc/cron</code><code>.weekly</code>
<code>42 4 1 * * root run-parts </code><code>/etc/cron</code><code>.monthly</code>
<code>第一部分表示分鐘(0-59),* 表示每分鐘</code>
<code>第二部分表示小時(0-23),* 表示每小時</code>
<code>第三部分表示日(1-31), * 表示每天</code>
<code>第四部分表示月(1-12), * 表示每月</code>
<code>第五部分表示周幾(0-6,0表示周日),* 表示一周中每天</code>
<code>第六部分表示要執行的任務</code>
<code>anacron</code>的目的并不是完全替代<code>cron</code>,是作為<code>cron</code>的一個補充。<code>anacron</code>的任務定義在檔案<code>/etc/anacrontab</code>中:
<code>[root@node1 spool]</code><code># cat /etc/anacrontab </code>
<code># /etc/anacrontab: configuration file for anacron</code>
<code># See anacron(8) and anacrontab(5) for details.</code>
<code>SHELL=</code><code>/bin/sh</code>
<code># the maximal random delay added to the base delay of the jobs</code>
<code>RANDOM_DELAY=45</code>
<code># the jobs will be started during the following hours only</code>
<code>START_HOURS_RANGE=3-22</code>
<code>#period in days delay in minutes job-identifier command</code>
<code>1 5 </code><code>cron</code><code>.daily </code><code>nice</code> <code>run-parts </code><code>/etc/cron</code><code>.daily</code>
<code>7 25 </code><code>cron</code><code>.weekly </code><code>nice</code> <code>run-parts </code><code>/etc/cron</code><code>.weekly</code>
<code>@monthly 45 </code><code>cron</code><code>.monthly </code><code>nice</code> <code>run-parts </code><code>/etc/cron</code><code>.monthly</code>
<code>本文轉自 a8757906 51CTO部落格,原文連結:http://blog.51cto.com/nxyboy/1950598</code>