作業管理 crontab

2021-08-31 04:20:31 字數 1524 閱讀 2407

linux crontab 命令詳解

大 | 中 | 小

[晴 2006/11/08 23:32 | by real ]

linux crontab 命令詳解

使用方式 :

crontab [ -u user ] file

crontab [ -u user ]

說明 :

crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。-u user 是指設定指定 user 的時程表,這個前提是你必須要有其許可權(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user 的話,就是表示設定自己的時程表。

引數 :

-e : 執行文字編輯器來設定時程表,內定的文字編輯器是 vi,如果你想用別的文字編輯器,則請先設定 visual 環境變數來指定使用那個文字編輯器(比如說 setenv visual joe)

-r : 刪除目前的時程表

-l : 列出目前的時程表

時程表的格式如下 :

f1 f2 f3 f4 f5 program

其中 f1 是表示分鐘,f2 表示小時,f3 表示乙個月份中的第幾日,f4 表示月份,f5 表示乙個星期中的第幾天。program 表示要執行的程式。

當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其餘類推

當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推

當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推

當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推

使用者也可以將所有的設定先存放在檔案 file 中,用 crontab file 的方式來設定時程表。

例子 :

每月每天每小時的第 0 分鐘執行一次 /bin/ls :

0 7 * * * /bin/ls

在 12 月內, 每天的早上 6 點到 12 點中,每隔 20 分鐘執行一次 /usr/bin/backup :

0 6-12/3 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信給 [email protected] :

0 17 * * 1-5 mail -s "hi" [email protected] < /tmp/maildata

每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....執行 echo "haha"

20 0-23/2 * * * echo "haha"

注意 :

當程式在你所指定的時間執行後,系統會寄一封信給你,顯示該程式執行的內容,若是你不希望收到這樣的信,請在每一行空一格之後加上 > /dev/null 2>&1 即可

重啟作業排程

/etc/init.d/cron restart

Linux 用at和crontab排程作業

1 突發性的,就是只執行作業一次而不是定期執行,使用at命令。例如在程序a執行一段時間後關閉該程序。2 定期執行,就是每隔一定的週期執行一次,使用crontab命令。如每週一次的工作報告 執行at命令,必須要有atd這個服務,有些linux預設沒有啟動,1 啟動atd etc init.d atd ...

crontab設定作業間隔執行問題

這個源於有個問,crontab裡 40 9 是不是代表9點開始每40分鐘執行?直覺這個肯定不是從9 00開始每隔40分鐘執行一次,但是也不能肯定它代表乙個什麼樣的schedule,那就做乙個實驗驗證一下吧 有時候明明覺得自己已經掌握了一些知識點,但是總有一些問題,你不能很確切 肯定的回答,其實說明了...

ubuntu定時任務管理crontab

crontab是linux下的定時任務管理工具,系統自帶。crontab為每個使用者設定了配置檔案,root使用者的配置檔案在 etc crontab裡面,普通使用者的配置檔案我們可以在配置檔案裡 var 我們可以直接修改配置檔案來新增新增任務,但往往不推薦這麼做。因為crontab提供了更安全的方...