僅執行一次的工作排程:at


		at		僅執行一次的工作排程。

  1. at 的使用限制如下:
    1. 先在 /etc/at.allow 檔案中尋找可以使用 at 指令的使用者。
    2. 若無 /etc/at.allow 檔案,則尋找 /etc/at.deny 檔案不能使用 at 指令的使用者。
    3. 若上述兩檔案皆不存在,則只有 root 可以使用 at 指令。
    4. 預設只有空白的 /etc/at.deny 檔,即所有人皆可使用 at 指令。
      [root@localhost csie]# cat /etc/at.allow
      cat: /etc/at.allow: No such file or directory
      [root@localhost csie]# cat /etc/at.deny
      
      [root@localhost csie]#
      

  2. at:僅執行一次的工作排程。
    [root@linux ~]# at [-m] TIME
    參數:
    -m  :當 at 的工作完成後,以 email 的方式通知使用者該工作已完成。
    TIME:時間格式,定義『什麼時候要進行 at 這項工作』的時間,格式有:
      HH:MM                         ex> 04:00
            在今日的 HH:MM 時刻進行,若該時刻已超過,則明天的 HH:MM 進行此工作。
      HH:MM YYYY-MM-DD              ex> 04:00 2005-12-03
            強制規定在某年某月的某一天的特殊時刻進行該工作。
      HH:MM[am|pm] [Month] [Date]   ex> 04pm December 3
            強制在某年某月某日的某時刻進行。
      HH:MM[am|pm] + number [minutes|hours|days|weeks]
            ex> now + 5 minutes     ex> 04pm + 3 days
            某個時間點『再加幾個時間後』才進行。
    
  3. 下達工作排程
    [dywang@dywOffice ~]$ at 17:00 063007
    at> echo Hello!
    at> <EOT>  %*<==輸入[Ctrl]+d,出現結束字樣<EOT>*)
    job 1 at 2007-06-30 17:00
    
  4. 查看目前的工作排程
    [dywang@dywOffice ~]$ atq
    1       2007-06-30 17:00 a dywang
    
  5. 刪除工作排程
    [dywang@dywOffice ~]$ atrm 1
    [dywang@dywOffice ~]$ atq
    [dywang@dywOffice ~]$
    

練習題

  1. 請說明工作排程指令 at 之限制使用者原理。
    Sol. 先找尋 /etc/at.allow,寫在此檔案的使用者才能使用;若 /etc/at.allow 不存在,就尋找 /etc/at.deny ,寫在 at.deny 的使用者則不能使用;若兩個檔案都不存在,只有 root 可以使用 at 指令。
  2. 若 csie 可以使用 at 指令,csie 如何在 2008/02/01 15:00 產生一個空的檔案 /home/csie/attestfile?
    Sol. 1. 下指令 at 1500 020108(或2008-02-01); 2. 輸入 touch /home/csie/attestfile; 3. 按 [Ctrl]+d 結束輸入。
  3. 若 csie 可以使用 at 指令,csie 如何在今天晚上 10:00 產生一個空的檔案 /home/csie/attestfile?
    Sol. 1. 下指令 at 10pm; 2. 輸入 touch /home/csie/attestfile; 3. 按 [Ctrl]+d 結束輸入。
  4. 若 csie 可以使用 at 指令,csie 如何在今天 22:00 產生一個空的檔案 /home/csie/attestfile?
    Sol. 1. 下指令 at 22:00; 2. 輸入 touch /home/csie/attestfile; 3. 按 [Ctrl]+d 結束輸入。
  5. 若 csie 可以使用 at 指令,csie 如何在五天後的早上 08:00 產生一個空的檔案 /home/csie/attestfile?
    Sol. 1. 下指令 at 8am+5days; 2. 輸入 touch /home/csie/attestfile; 3. 按 [Ctrl]+d 結束輸入。
  6. 若 csie 可以使用 at 指令,csie 如何在二星期後的下午 1:00 產生一個空的檔案 /home/csie/attestfile?
    Sol. 1. 下指令 at 1pm+2weeks; 2. 輸入 touch /home/csie/attestfile; 3. 按 [Ctrl]+d 結束輸入。
  7. 若 csie 可以使用 at 指令,csie 如何在18小時後的下午 5:00 產生一個空的檔案 /home/csie/attestfile?
    Sol. 1. 下指令 at 5pm+18hours; 2. 輸入 touch /home/csie/attestfile; 3. 按 [Ctrl]+d 結束輸入。
  8. 如何查看目前 at 的工作排程?
    Sol. atq
  9. 若目前 at 的工作排程有五項,如何刪除第三項工作排程?
    Sol. atrm 3