下 /var/log/httpd
フォルダ、ファイルは巨大な容量で作成されます!!!
古いファイルを自動的に圧縮するためにどのようなソリューションを使用できますか(logrotate
でこれを処理できますか)?
はいの場合、このフォルダーの下の古いファイルを圧縮するためにLinuxマシンを構成するにはどうすればよいですか?
2番目の質問:それらのファイルの意味は何ですか?
13:16:50 root@BillGates-Machine:/var/log/httpd # ls -ltr
-rw-r--r-- 1 root root 7612 Jan 30 05:51 ssl_error_log-20160131
-rw-r--r-- 1 root root 16170199 Jan 31 03:29 ssl_request_log-20160131
-rw-r--r-- 1 root root 14677353 Jan 31 03:29 ssl_access_log-20160131
-rw-r--r-- 1 root root 425621646 Jan 31 03:38 access_log-20160131
-rw-r--r-- 1 root root 77267 Jan 31 03:38 error_log-20160131
-rw-r--r-- 1 root root 11233 Feb 7 03:43 ssl_error_log-20160207
-rw-r--r-- 1 root root 16398688 Feb 7 03:44 ssl_request_log-20160207
-rw-r--r-- 1 root root 14867381 Feb 7 03:44 ssl_access_log-20160207
-rw-r--r-- 1 root root 471057664 Feb 7 03:48 access_log-20160207
-rw-r--r-- 1 root root 101611 Feb 7 03:48 error_log-20160207
logrotate
はローテーションするファイルを圧縮できますが、アプリケーションが書き込むログファイル名が静的でない場合はうまく機能しません(この場合のように、ファイル名に日付のサフィックスがあるため)。 HTTPサーバー(Apache?)を再構成して、日付サフィックスが含まれないようにした場合(つまり、access_log
、error_log
etc)logrotate
を使用できます。 これは、このように構成する方法の例のソリューションです。
ログファイルの命名規則を保持したい場合に備えて解決策もある別の関連する質問があります。 これは、logrotateではなく、ジョブのカスタムスクリプトを使用します。
つまり、これらのファイルの意味は
(もちろん、あなたの設定はそのロジックから逸脱する可能性があります)
Logrotateを使用できます。
アプリケーション構成設定の例は、/etc/logrotate.d/dpkg
に保存されているdpkg(Debianパッケージ管理システム)です。このファイルのエントリの1つは次のとおりです。
/var/log/dpkg.log {
monthly
size 500M
rotate 12
compress
delaycompress
missingok
notifempty
create 644 root root
}
チュートリアル ここ 。
Cronに圧縮操作を追加します。次の行をルートのcrontabに追加します(Sudo crontab -e
):
0 0 * * * tar -czf /var/log/httpd_backup_`date`.tar.gz /var/log/httpd && rm -rf /var/log/httpd/*
このコマンドは、古いログでtarアーカイブを作成し、存在するものを削除します。ジョブは毎日0時に開始されます。