一定期間以上経過したログファイルを削除する【Linux】

当ページのリンクには広告が含まれています。
coffee, office, work

こんにちは、ふじみやです。

私はマイクラのマルチプレイ用サーバーを Xserver VPS で運用しているのですが、通常のサーバーソフトのログのほか以前ご紹介したマイクラサーバーの自動停止プログラムに関するログが毎日生成されるため、使うことのない古いログがどんどん溜まっていってしまいます。

とはいえ、古いログを手作業で削除していくのも面倒なので、今回は作成後一定期間経過したログは削除するようにしていきます。

目次

使用環境・コンセプト

使用環境

Xserver VPS の Ubuntu 22.04.1 LTS を利用します。

とはいえ、通常のLinuxコマンドが使えるものであればAWSの Amazon Linux 2 等でも同じです。

コンセプト

以下のコンセプトで設計をしていきます。

  • 削除対象は~/minecraft/logs内に存在
  • 削除対象は最終更新後1か月(30日)以上経過したログファイル
  • 毎週日曜日の夜10時に削除を自動実行

なお、~はホームディレクトリである/home/ubuntuを意味します。

設定内容

コンセプトに基づくと、ファイルを検索するfindコマンド、ファイルを削除するrmコマンドと、コマンドのスケジュール管理を行うcronを利用すれば何とかなりそうです。

find

findコマンドはファイルの検索をする際に使用します。

今回の場合だと、最終更新日から30日以上経過したファイル(.log)を検索します。

find ~/minecraft/logs -name "*.log" -mtime +30

findコマンドのオプションである-mtimeはファイルのデータが最終更新された日を意味し、+30は「30日よりも前」を示しています。

試しにこのコマンドを入力すると、次のような表示になるはずです(該当するファイルがなければ何も表示されません)。

$ find ~/minecraft/logs -name "*.log" -mtime +30
home/ubuntu/minecraft/logs/2023-01-01.log
home/ubuntu/minecraft/logs/2023-01-02.log
home/ubuntu/minecraft/logs/2023-01-03.log
home/ubuntu/minecraft/logs/2023-01-04.log
home/ubuntu/minecraft/logs/2023-01-05.log
・・・

rm

rmコマンドはファイルやディレクトリなどを削除する際に利用するものです。

rm -f *.log

上記のコマンドは「カレントディレクトリ内の.logという名前のファイルを全て削除する」という意味になります。-fというのは削除対象がなくともエラーを出力しないというオプションです。

この*.logに該当する部分(引数)に先ほどのfindコマンドの標準出力を渡せるようにすれば、目的を達成できそうですね。

パイプとxargs

パイプとは縦棒|のことで、コマンドの標準出力の内容を次のコマンドへ渡す際に使われるコマンドです。

xargsはパイプによって渡された標準出力の内容を引数とするコマンドですので、これらを組み合わせると次のようになります。xargsが引数となりますので、通常のrmコマンドとは順序が入れ替わる点にご注意ください。

find ~/minecraft/logs -name "*.log" -mtime +30 | xargs rm -f

cronの設定

あとは定期的にコマンド実行をするスケジュール管理をしておきましょう。

cronの使い方についてはこちらにて説明をしていますので、あわせてご参考ください。

crontab -ecronの設定を開き、次を入力してください。なお、cronでの日時の指定の仕方は 分→時→日→月→曜日 となっており、曜日の指定方法は0〜7(0と7は日曜日)となっています。

# 30日以上経過したログファイルを毎週日曜22時に削除
0 22 * * 0 find ~/minecraft/logs -name "*.log" -mtime +30 | xargs rm -f

これで「毎週日曜日の夜10時に~/minecraft/logsディレクトリ内にある最終更新日が30日よりも前のログファイルを削除」という設定ができました。

まとめ

今回は古いログファイルを削除するため、findコマンドとrmコマンドをつなぐパイプやxargsコマンドについてご紹介しました。

これでログファイルを保存しているディレクトリが整理されますので、皆さんもぜひ試して見てください。

それではまた。

coffee, office, work

この記事が気に入ったら
フォローしてね!

コメント

コメントする

目次