後台執行命令,就是把shell命令放到系統後台去執行,不會在終端顯示,不會影響使用者在終端繼續工作;就算終端關閉了命令也一樣在執行。
名詞解釋:
1)、cron 系統調度進程; 2)、at at命令,在特定的時間運行特殊的作業; 3)、& 在後台運行一個佔用時間不長的進程; 4)、Nohup 在後台運行一個命令,即使使用者退出也不受影響。 1、crontab命令:
crontab命令,用於定期執行shell作業。crontab是以crontab檔案的形式向cron進程提交作業的。
crontab命令是周期性執行作業。
root使用者可以通過/etc目錄下的cron.deny和cron.allow來禁用和啟用使用者擁有自己的crontab檔案。
2、crontab的域說明:
第1列 分鐘1~59 第2列 小時1~23(0表示子夜) 第3列 日1~31 第4列 月1~12 第5列 星期0~6(0表示星期天) 第6列 要啟動並執行命令(可以是shell命令,也可以是shell指令檔) 3、crontab的格式:
分<>時<>日<>月<>星期<>要啟動並執行命令 #<>表示空格
說明:
1)、如果一個時間域,用*代替,說明是任意數; 2)、如果一個時間域,要填寫多個數,可以通過逗號分隔; 3)、如果一個時間域,要填寫一段持續的時間,可以通過-分隔; 執行個體:
30 21 * * * /apps/bin/cleanup.sh #每天晚上21:30執行/apps/bin目錄下的cleanup.sh這個shell指令碼; 10 1 * * 6,0 /bin/find -name "core" -exec rm {} \; #每周六、周日的1:10執行find命令尋找檔案並刪除檔案; 0,30 18-23 * * * /apps/bin/dbcheck.sh #每天18:00~23:00,每30分鐘執行一下shell指令碼;
注意事項:
1)、向cron提交作業,執行shell指令檔時,需要使用絕對目錄來指定shell指令檔; 2)、shell指令碼中,使用的環境都需要在shell中定義清楚; 3)、向cron提交作業之前,要配置EDITOR環境變數,目的是讓cron進程知道,使用什麼編輯器來執行crontab檔案。 編輯使用者$HOME目錄下的.profile檔案( gedit ~/.profile ),添加以下內容: EDITOR=vi; export EDITOR
4、建立新crontab檔案:
1)touch cbcron 2)gedit cbcron #加入以下內容
# echo something to file every 10 minutes between 14 and 185,10,15,20,25,30,35,40,45,50,55 14-18 * * * /bin/echo 'hell cb!' >> /home/cb/Documents/cbhello
3)提交crontab: crontab cbcron 4)列出crontab: crontab -l 6)備份crontab: crontab -l > $HOME/mycron #把crontab備份到使用者根目錄的mycron檔案;
5、編輯crontab檔案:
crontab -e #系統會用設定好的EDITOR環境變數指定的編輯器開啟crontab;
6、刪除crontab檔案:
crontab -r