crontab和cron
crontab的域
格式:
minute[1~59] hour[1~24] day[1~31] month[1~12] week[0~6] [command]
說明:
第1列 分鐘1~59
第2列 小時1~23( 0表示子夜)
第3列 日1~31
第4列 月1~12
第5列 星期0~6( 0表示星期天)
第6列 要運行的命令
實例:
30 21* * * /apps/bin/cleanup.sh //每晚的 2 1 : 3 0運行/ apps/bin目錄下的cleanup.sh
45 4 1,10,22 * * /apps/bin/backup.sh //表示每月 1、 10、 22日的4:45運行/apps/bin目錄下的backup.sh
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分鐘運行/apps/bin目錄下的d dbcheck.sh文件
0 23 * * 6 /apps/bin/qtrend.sh //表示每星期六的11:00 pm運行/apps/bin目錄下的qtrend.sh
crontab命令
格式:
crontab [-u] -e -l -r
參數說明:
-u 用戶名
-e 編輯crontab文件
-l 列出crontab文件中的內容
-r 刪除crontab文件
如果使用自己的名字登錄,就不用使用 -u 選項,在crontab執行命令時,該命令可以知道當前的用戶。
2.at命令
使用它在一個特定的時間運行一些特殊的作業。
at命令:允許用戶向cron守護進程提交作業,使其在稍後的時間運行。一旦一個作業被提交,at命令會保留所有當前的環境變量,包括路徑,而crontab只提供缺省的環境,一般at的作業輸出會以電子郵件的形式發送給用戶,除非進行重定向,絕大多數情況下是重定向到某個文件中。
at [-f script] [-m -l -r] [time] [date]
參數說明:
-f script 是所要提交的腳本或命令。
-l 列出當前所有等待運行的作業。 atq命令具有相同的作用。
-r 清除作業。爲了清除某個作業,還要提供相應的作業標識(I D);有些Unix變體只接受atrm作爲清除命令。
-m 作業完成後給用戶發郵件。
time at命令的時間格式非常靈活;可以是H、HH.HHMM、HH:MM或H:M,其中H和M分別是小時和分鐘。還可以使用a.m.或p.m.。
date 日期格式可以是月份數或日期數,而且at命令還能夠識別如today、tomorrow這樣的詞。
提交命令:
如果想一次提交多行命令,可以在at後面跟上時間/日期,然後回車進入at多行命令模式,根據提示輸入命令,退出按 Ctrl+D 。
以下日期/時間格式都是at命令可接受的:
at 6.45am may12
at 11.10pm
at now+1hour
at 9am tomorrow
at 15:00 may 24
at now + 10 minutes
實例應用:
at 3.00pm tomorrow -f /apps/bin/db_table.sh //
一個在/apps/bin目錄下的db_table.sh的命令將在明天下午三點運行
echo find /etc -name "passwd" -print | at now +1 minute //可以使用echo命令向 at 命令提交命令
at -l //列出所提交的作業
atrm [job num] 或 at -r [job num] //清除一個作業,首先需要運行 at -l 查看作業號
3.&
使用它在後臺運行一個命令,即使在用戶退出時也不受影響。
一般格式:
command &
實例:
command >out.file 2>&1 & //不提示任何信息重定向輸出到 out.file 文件中,後臺執行,成功後顯示進程號
find /etc -name "test.conf" -print >find.out 2>&1 & //當我們提交成功後,系統給出進程號
nohup命令
如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那麼可以使用 nohup 命令。該命令可以在你退出帳戶之後繼續運行相應的進程。 nohup就是不掛起的意思(no hang up)。
格式:
nohup command &
應用實例:
nohup command >myout.file 2>&1 //輸出被重定向到myout.file文件中
nohup ./test.conf >test.out 2>&1 & //執行腳本所有輸出重定向到 test.out 文件中