排程作業(Crontab)
網站營運一段時間後,會累積已退出會員的資訊、已刪除相片的縮圖、過期的通知等不必要的資料。設定排程作業(Crontab)後即可自動清理,維護磁碟空間與效能。
僅適用於自有伺服器(可透過 SSH 連線)。虛擬主機只有在主機商提供 cron 功能時,才能註冊相同的指令。
執行格式
php index.php 모듈명.스크립트명 [변수]在安裝路徑中以 PHP CLI 執行。不支援以網址呼叫的方式(網頁 cron)。
提供的清理腳本
| 指令 | 作用 | 預設基準 |
|---|---|---|
file.cleanGarbageFiles | 清理未連結到文章的附件 | 10 天 |
file.cleanThumbnails | 刪除過期的縮圖 | 90 天 |
file.cleanEmptyDirs | 移除空資料夾 | - |
module.cleanMiscLogs | 刪除過期的記錄 | 30 天 |
ncenterlite.cleanNotifications | 移除過期的通知 | - |
crontab 註冊範例
以 crontab -e 編輯。建議在凌晨時段每隔幾分鐘依序執行,以避免負載過高。
5 5 * * * cd /var/www/mysite && php index.php file.cleanGarbageFiles
10 5 * * * cd /var/www/mysite && php index.php file.cleanThumbnails
15 5 * * * cd /var/www/mysite && php index.php module.cleanMiscLogs
20 5 * * * cd /var/www/mysite && php index.php ncenterlite.cleanNotifications注意事項
- 請以與網頁伺服器相同的帳號執行(www-data 等)。若註冊在 root 的 crontab 中,產生的檔案擁有者會不一致,導致網頁無法存取。可用
crontab -e -u www-data註冊到該帳號。 - 註冊後請在
files/cron.log中確認是否正常運作。 - 以上以 Linux 伺服器為準。Windows 伺服器請以工作排程器註冊相同的指令。