系統排程

Linux 系統排程所使用的檔案是 /etc/crontab,使用系統排程可以讓我們將平常固定要做的事情自動化,可以節省很多工作時間。在開始設定系統排程之前,先來說明一下排程設定檔的格式,格式如下:

            
                分 時 日 月 週 指令
            
        
說明 值範圍
第幾分鐘執行 0~59
第幾小時執行 0~23
第幾天執行 1~31
第幾個月份執行 1~12
每週的第幾天執行 0~6 (0 代表星期日)
指令 要執行的指令

例如:

            
                0 6 * * * service httpd stop     // 每天的 6 點整停止 httpd 服務
                0 6 1 * * service httpd stop     // 每月的 1 日 6 點停止 httpd 服務
                0 6 1 3 * service httpd stop     // 每年的 3 月 1 日 6 點停止 httpd 服務
                0 6 * * 0 service httpd stop     // 每週日 6 點停止 httpd 服務
            
        

如果您要設定每天 4~6 點的 30 分執行指令的話,您可以寫成如下:

            
                30 4 * * * tar czvf backup.tar.gz /root/*
                30 5 * * * tar czvf backup.tar.gz /root/*
                30 6 * * * tar czvf backup.tar.gz /root/*

                (或者您只要寫這樣)
                30 4-6 * * * tar czvf backup.tar.gz /root/*
            
        

如果您要設定每個月的 1 號與 15 號的 6 點 30 分執行指令的話,您可以寫成如下:

            
                30 6 1 * * tar czvf backup.tar.gz /root/*
                30 6 15 * * tar czvf backup.tar.gz /root/*

                (或者您只要寫這樣)
                30 6 1,15 * * tar czvf backup.tar.gz /root/*
            
        

如果您希望將排程執行的結果寄送 mail 到您的信箱,只要編輯 /etc/crontab 檔案最上面的 MAILTO 即可

            
                PATH=/sbin:/bin:/usr/sbin:/usr/bin
                MAILTO=mail1,mail2,mail3
                HOME=/
            
        

個別帳號排程

個別帳號排程的寫法與系統排程一模一樣,有時候因為權限的關係您的帳號可能無法編輯 /etc/crontab 檔案,如果您還是希望執行自己的排程,可使用以下方式:

            
                $ crontab -e      // 編輯排程
                $ crontab -l      // 檢視目前的排程
                $ crontab -r      // 刪除所有排程