Discord botが生成するキャッシュを自動削除するシェルスクリプト

Discord botVPS上に常駐させる場合、botの使い方によってはキャッシュファイルの増大が問題になってきます。

例えば私のように数万曲のURLを登録している場合、曲が被ることは滅多にないため、毎曲のように数MBのキャッシュが生成されることになります。

WinSCP等でaudio_cacheフォルダを直接覗いて手動で削除することも可能ですが、面倒なので定期的に自動で削除させましょう。

 

参考文献

【linux】蓄積されていくログファイルなどを定期的に削除する例 at softelメモ

crontabの書き方 | server-memo.net

 

Linuxにはcronと呼ばれる、定期的にコマンドを実行させるためのプロセスがあります。

まずcrontabをインストールし、アクティブになっていることを確認します。

$ sudo apt-get install crontabs 

$ sudo service cron status

Active: active (running)という文字列があればOKです。

crontabを編集します。このファイルに書き込まれたコマンドが自動的に実行されます。

$ crontab -e

私は絶対参照でこのように設定しています。

 00 12 * * * find /home/ubuntu/MusicBot/audio_cache -name '*' -exec rm -f '{}' ';'

これは毎日12時にaudio_cache内のファイルを全て削除することになります。

00 12 * * *の部分でコマンドを実行するタイミングを設定します。変更する場合は参考文献を見てください。

例えば動作確認をすぐにしたい場合*/1 * * * *とすると1分おきになります。

Exitを選択し、保存して抜ければ終了です。

rmコマンドは問答無用でファイルを削除するため、ディレクトリの指定には十分注意してください。

 

追記

こんなことをしなくても、options.iniでSaveVideos = noとすればキャッシュ出ないっぽいです。