來源=http://content.edu.tw/primary/info_edu/cy_sa/LinuxY/cmd/crontab.htm
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 都可以存取
( # 號在 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
# crontab for BBS
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 將精華區中的資料備份起來
# [備註] 上面兩行是連在一起的一連串指令
沒有留言:
張貼留言