CRON - ptt/pttbbs GitHub Wiki

建立與調整 BBS 所在作業系統的定期工作

crontab 是作業系統的「例行性工作排程」,更詳盡的入門導引請參考鳥哥的相關文章

按照github上面安裝說明(doc/INSTALL)的指示, 是不用調整太多的, 但還是有些東西需要留意:

安裝方法:

  1. 直接將 ~/pttbbs/sample/crontab 裡的內容複製起來 (先將「~」當BBS家目錄,「~/pttbbs」當放CurrentPtt程式碼的地方)

    再到shell指令介面輸入:

$ crontab -e

後, 在編輯器介面裡直接貼上

  1. 或是直接
$ crontab ~/pttbbs/sample/crontab

即可將 BBS 需要的 crontab 安裝到作業系統上

crontab -e進入編輯介面時, 建議可以調整一些東西:

1.

# 每天 2:00, 11:00, 16:00, 21:00 開獎
# 0 2,11,16,21 * * * bin/openticket.sh

如果自己的BBS沒有想要開全站賭盤的功能, 可以在前面加上 # 註解掉, 這樣排程就不會被執行

2.

# 每週三, 六統計轉信所有板
# 35 6 * * 6 bin/showboard .BOARDS > etc/BOARD.rec

現在的Ptt已經沒有轉信功能了, 所以可以註解掉

3.

# 清版 (視情況用每天或每週)
20    3    *    *    1    bin/expire

有需要刪除文章屍體以及設定開啟看板容量上限的話需要留意這個排程

自己決定要清文章/文章屍體的時間

並不是每次你將BBS系統重開機就會把這些東西清掉的

(當然你也可以利用之前已介紹的rc.local來讓作業系統做這個事情)

4.

# 天氣, 股票
# 0 5,11,17,23    *       *       *       bin/weather.sh

現在的天氣/股票預報程式已經抓不到東西了, 故可先把此排程關掉, 不然會有以下情形:#1P8Mdyaa (PttBug)

5.

# 每日砍除 ALLPOST
# 30 5 * * * /bin/rm boards/A/ALLPOST boards/A/ALLHIDPOST; mkdir boards/A/ALLPOST boards/A/ALLHIDPOST

如果不想讓每天早上 5:30, ALLPOST板的文章就消失一次 (e.g. #1P8Z8lSL (PttBug) )可以將此排程註解掉

如果想把 crontab 的設定匯出, 讓自己之後若有需要換BBS主機搬資料時方便轉移設定

可以用以下方法

$ crontab -l > ~/crontab.now  ## 也可以自己隨便取其他檔名,知道自己放到哪個檔案即可