定期実行(Crontab)
サイトを運営していると、退会した会員の情報、削除された写真のサムネイル、古い通知などの不要なデータがたまります。定期実行(Crontab)を設定すると自動で整理され、ディスク容量とパフォーマンスを守ることができます。
個人サーバー(SSH 接続可能)専用です。Web ホスティングでは、業者が cron 機能を提供している場合に限り、同じコマンドを登録できます。
実行形式
php index.php 모듈명.스크립트명 [변수]インストールパスで PHP CLI から実行します。Web アドレスで呼び出す方式(Web 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注意事項
- Web サーバーと同じアカウントで実行してください(www-data など)。root の crontab に登録すると、生成されるファイルの所有者がずれて Web からアクセスできなくなります。
crontab -e -u www-dataでそのアカウントに登録できます。 - 登録後、
files/cron.logで正常に動作しているか確認してください。 - Linux サーバーを前提としています。Windows サーバーではタスクスケジューラで同じコマンドを登録します。