網頁

2013年3月10日 星期日

at,atq,atrm,batch,crontab指令


  • at 指令用於在某一個時間時,執行某一個工作(一次性的工作任務)
    • 選項
      • f:指定一個文件作為任務腳本
      • m:完成任務之後給用戶發送一個MAIL
      • l:列出計劃任務的列表
      • d:刪除指定的計劃任務
    • 指令 
      • sample 1
        • at 23:00
        • cp /etc/passwd /root
        • Ctrl+D (離開)
      • sample 2
        • at 10:10am tomorrow
        • cp -R /file/backup /file/nfs/ &>/dev/null
        • CTRL+D(離開)
      • sample 3
        • at now +5 hour -f /root/exam.sh
      • sample 4
        • at now +5 hour -f ~/exam.sh
    • 指令的時間格式
      • at 7pm Oct 16
      • at now+2 hour
      • at 10:10am tomorrow
      • ...
    • 或是
    • 指令(指定一個file)
      • at -f schedule.task 23:00
    • at指令與crontab指令還有一個很大的不同點,即at指令支援使用現有的環境變量,而cron是不支援的。
    • at指令完成後也會像cron一樣在/var/spool/at中看見執行腳本
    • 如果要禁止用戶使用at指令的話,可在在文件/etc/at.deny中添加該用戶的帳號即可。

-------------------------------------------------------------------------------------------------------
atq 指令(at -l),用來查詢待執行的任務
-------------------------------------------------------------------------------------------------------
atrm 指令,用來刪除待執行的任務
    Step 1 . 先使用 atq 指令查詢所又依務列表;第一欄任就是任務的id號
    Step 2 . atrm 1
-------------------------------------------------------------------------------------------------------
batch 指令功能於 at 相同,但是 batch 可以設置在系統 busy 時執行。
    Step 1 . batch 3:20
                 ctar -czvf /root/abc.tar.gz /etc
                  Ctrl+D (離開)
    Or
    Step 1 . batch -f schedule.task 3:00

    Step 2 . 查詢 batch 的執行任務,也是使用 atq 指令即可。


-------------------------------------------------------------------------------------------------------
crontab 指令,設定週期性的執行任務;讓使用者在特定的時間(包括月、日、時、分、星期)執行特定的指令,你可以在/etc/cron.allow與/etc/cron.deny這2個檔案去限制那些人可或那些人不能執行crontab,在預設是不會有這2個檔案的…但記得哦…一次只有一個會生效哦。

    Step 1 . 你可以在使 vim 編輯 /etc/crontab 檔案
     17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
     12 25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --re    port /etc/cron.daily )
     13 47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --re    port /etc/cron.weekly )
     14 52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --re    port /etc/cron.monthly )

    說明欄位
    分 時 日 月 週,這一個文件的內容可以參考一下鳥哥網站…因為實在是太多啦
  
    Step 2 . crontab -l 用來列出所有個人的排程


  • 常用的選項
    • l:列出所有個人的排程
    • e:編輯個人的排程
    • u:指定使用者

  • 欄位說明
    • 分 時 日 月 星期 指令
    • 範例
      • 5 2 * * 2,4,6 /root/root.sh
        • 每2,4,6週的早上2點5分執行 /root/root.sh
      • 10 8 12 * * /root/root.sh
        • 每月的12日早上8點10分執行/root/root.sh
----編輯記錄
  • 2013/4/23:
    • 補充:
      • at指令相關之選項以及sample
      • at指令的時間格式
      • at指令的權限設定








沒有留言:

張貼留言