[Linux]命令crontab 使用格式說明
2010年1月21日星期四 | | |crontab 使用格式說明
Linux/Unix 系統有個 crontab 程式是用來讓系統各使用者自行設定在需要的時間 ,做需要的事。例如使用者可以設定每星期三的早上8點會自動ftp 到某地去抓檔案, 或每天半夜3點自動備份資料等... 要有定時裝置,記憶体內要常註 /usr/sbin/crond 程式
一般 Linux 在開機時會自動載入,如果發現無 crond 在跑, 可以到 /etc/rc.d/ 目錄下看看是否有將執行crond 程式的指令加入開機自動執行檔裡面。 使用者可以用 crontab -e 指令來編寫需要做的工作或者將要執行的工作 或寫在一個 file 裡,再執行 crontab filename 就可以了 所有使用者的 crontab 檔都會存檔 /usr/spool/cron/crontab/ 下,檔名就是該帳號的名字。
crontab 的格式如下: 分 時 日 月 星期 要執行的指令 例如: 30 12 * * * /usr/bin/rm xxx.txt 在 12:00 時將 xxx.txt 這個檔案殺掉 * 號表示每日每月每星期都執行 |
另外寫 crontab 時須注意必須使用 絕對路徑如 rm 執行檔 必須寫成 /usr/bin/rm
MIN HOUR DAY MONTH DAYOFWEEK COMMAND
# at 6:10 a.m. every day
10 6 * * * date
# every two hours at the top of the hour
0 */2 * * * date
# every two hours from 11p.m. to 7a.m., and at 8a.m.
0 23-7/2,8 * * * date
# at 11:00 a.m. on the 4th and on every mon, tue, wed
0 11 4 * mon-wed date
# 4:00 a.m. on january 1st
0 4 1 jan * date
□ BBS 的 crontab 定時工作 以下是 bbsuser 這個帳號的 crontab 檔
因為 bbs 和 bbsuser 是同uid(同一人) 所以 bbsuser 帳號所執行的東西,bbs 都可以存取 |
# crontab for BBS( # 號在 UNIX 下都是註解的意思 ) 以下檔案為 ( /usr/spool/cron/crontab/bbsuser 這檔 或是 /usr/spool/cron/crontab/bbs 這檔 都一樣) # # 轉信抓信部份 # 0 7,8,9,11,14,15,16,1,2,4,5,19,20 * * * /home/bbs/innd/bbsnnrp aidebbs.edu.tw /home/bbs/innd/aide.active 12 10,13,15,21 * * * /home/bbs/innd/bbsnnrp 140.116.2.98 /home /bbs/innd/ncku-catv.active 20 * * * * /home/bbs/innd/bbsnnrp news.nchu.edu.tw /home/bbs/i nnd/n2.active > /home/bbs/innd/nchulist.doc 40 1,3,5,7,9,11,13,14,15,17,19,22,23 * * * /home/bbs/innd/bbsn nrp news.nchu.edu.tw /home/bbs/innd/n.active # # 轉信送信部份 # 1,30 * * * * /home/bbs/innd/bbslink -v /home/bbs >> /home/bbs/ bbslist/send.lst # # 每日自動砍信程式 # 殺超過 1000 天 或 超過 2000 封 的信,每版最少保留 1800 封 0 3 * * * /home/bbs/innd/expirepost /home/bbs 1000 2000 1800 # # 身份確認信送出程式 # 15,30,45,0 * * * * /home/bbs/bin/deliver /home/bbs /home/bbs /reclog/today.reg >> /dev/null # # 每天 0:0 殺掉 每日上站人數記錄檔 # 0 0 * * * rm /home/bbs/bbslist/avr.src# 製做BBS 每小時上站人數統計圖 # 0,14,29,44 * * * * /usr/bin/uptime > /home/bbs/bbslist/up 2,15,30,45 * * * * /home/bbs/bbslist/avr /home/bbs/bbslist/up 58 23 * * * cp /home/bbs/etc/bbsnews /home/bbs/Announce/faq/ BBS/SYSOP/yesterday
5,15,25,35,45,55 * * * * innd/bbslink /home/bbs
# 每小時的 5,15,25,35,45,55 分執行 bbslink 轉入文章
1 * * * * bin/account10 * * * * bin/poststat /home/bbs
# 每個小時 10 分執行熱門話題統計
0 3 * * * bin/topusr 50
# 每天早上三點整執行使用者排行榜更新
20 3 * * * (/bin/rm -f expire.lst logins.bad; bin/expire > expire.lst)
# 每天早上 3:20 將 BBS 系統中不必要的檔案砍掉
50 3 1 * * /bin/find /home/bbs -size 0 -exec /bin/rm -f {} \;
# 每個月一號早上 3:50 , 將 BBS 系統中長度為零的檔案砍掉
30 4 * * 0 (/bin/gtar zcf adm/bbs.tgz .BOARDS .PASSWDS register.log; mv
adm/usr.tgz adm/usr.bak; /bin/gtar zcf adm/usr.tgz home; /bin/rm -f
adm/usr.bak)
# 每週日早上 4:30 將重要檔案及看板中的資料備份起來
# [備註] 上面三行是連在一起的一連串指令
30 5 * * 6 (mv adm/man.tgz adm/man.bak; /bin/gtar zcf adm/man.tgz man;
/bin/rm -f adm/man.bak)
# 每週六早上 5:30 將精華區中的資料備份起來
# [備註] 上面兩行是連在一起的一連串指令
# 每個小時 1 分執行上站人次統計
10 * * * * bin/poststat /home/bbs
# 每個小時 10 分執行熱門話題統計
0 3 * * * bin/topusr 50
# 每天早上三點整執行使用者排行榜更新
20 3 * * * (/bin/rm -f expire.lst logins.bad; bin/expire > expire.lst)
# 每天早上 3:20 將 BBS 系統中不必要的檔案砍掉
50 3 1 * * /bin/find /home/bbs -size 0 -exec /bin/rm -f {} \;
# 每個月一號早上 3:50 , 將 BBS 系統中長度為零的檔案砍掉
30 4 * * 0 (/bin/gtar zcf adm/bbs.tgz .BOARDS .PASSWDS register.log; mv
adm/usr.tgz adm/usr.bak; /bin/gtar zcf adm/usr.tgz home; /bin/rm -f
adm/usr.bak)
# 每週日早上 4:30 將重要檔案及看板中的資料備份起來
# [備註] 上面三行是連在一起的一連串指令
30 5 * * 6 (mv adm/man.tgz adm/man.bak; /bin/gtar zcf adm/man.tgz man;
/bin/rm -f adm/man.bak)
# 每週六早上 5:30 將精華區中的資料備份起來
# [備註] 上面兩行是連在一起的一連串指令