Ubuntuで指定した期間のログを一括で圧縮する方法

Ubuntuで指定した期間のログを一括で圧縮する方法

この記事では、Ubuntuで指定した期間のログを効率的に一括で圧縮する方法について解説します。古いログファイルをまとめて管理し、ディスクスペースを節約するための方法を紹介します。

ログファイルの場所を確認する

まず、圧縮したいログファイルが保存されているディレクトリを確認します。通常、システムログは/var/logに保存されています。

cd /var/log

ここに、システムのさまざまなログファイルが保存されています。

findコマンドで指定した期間のログを探す

findコマンドを使って、指定した期間内に変更されたログファイルを探します。例えば、過去7日間に変更されたログファイルを探すには以下のコマンドを使用します。

find /var/log -type f -mtime -7

これにより、過去7日以内に変更されたすべてのログファイルが表示されます。

tarコマンドでログファイルを圧縮する

次に、tarコマンドを使って、見つけたログファイルを一つのアーカイブにまとめて圧縮します。以下は、過去7日間のログファイルをlogs.tar.gzという名前で圧縮する例です。

find /var/log -type f -mtime -7 -print0 | xargs -0 tar -czvf logs.tar.gz

これで、指定した期間のログファイルがlogs.tar.gzというアーカイブファイルに圧縮されます。

圧縮後に元のログを削除する

圧縮が完了したら、元のログファイルを削除してディスクスペースを解放することができます。ただし、削除する前に必ず圧縮が正しく行われたことを確認してください。

find /var/log -type f -mtime -7 -delete

これで、指定した期間のログファイルが削除されます。

圧縮と削除を自動化する

定期的にログファイルを圧縮し、ディスクスペースを管理するために、cronジョブを設定します。例えば、毎月1日に過去30日間のログファイルを圧縮するには、以下のようにcrontabを設定します。

0 0 1 * * find /var/log -type f -mtime -30 -print0 | xargs -0 tar -czvf /backup/logs_$(date +\%Y\%m\%d).tar.gz && find /var/log -type f -mtime -30 -delete

これで、指定したスケジュールに基づいてログファイルが自動的に圧縮され、古いログファイルが削除されます。

圧縮されたログファイルの保存場所を確認する

最後に、圧縮されたログファイルがどこに保存されているか確認しましょう。上記の例では、/backup/ディレクトリに保存されます。

ls /backup/

これで、圧縮されたログファイルを確認できます。