ディスク容量が90%に達すると、自動的にログを削除するシェルスクリプトを開発しました。
このシェルスクリプトをcrontabジョブに追加できます。
答え1
スクリプトを書くのに時間を費やすのではなく、ファイルを圧縮して古いログを少なくする方が良いでしょうか?これがログロテートが存在する理由です。
次logrotate.conf
のように始める必要があります。
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
たとえば、オプションのコメントを外しcompress
、3に変更してrotate
ディスク容量に合っていることを確認します。また、会社の要件を満たす必要があります。法的な理由から、ログイン情報を18ヶ月間保持する必要があるサーバーがあるため、ログインファイルを毎月交換するように変更しました。
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 18
}
/var/log/btmp {
missingok
monthly
minsize 1M
create 0600 root utmp
rotate 18
}
ファイルまたはディレクトリを指し、中かっこの間にパラメータを入れると、特定の回転ルールを作成できます。
特権ユーザーではありませんか?。ルートなしで実行するように設定できるため、cron
これはまったく問題ではありません。logrotate