LoginSignup
0
0

More than 5 years have passed since last update.

ログファイルによるdisk圧迫への対処法

Posted at

経緯

ログファイルがdiskを圧迫し、サーバ処理が出来ないという問題が発生。暫定的にファイルを削除しようと思ったが、lotateされてあるファイルなので、logrotate.dが使えない。
しょうがないので、cronを使う。

cronの記載

http://www.server-memo.net/tips/crontab.html
これを見れば十分。

find

findはいつも細かいオプションを忘れる。本来は、findだけで、もっと色々出来るのだが、パイプで繋ぐのを多用している気がするなあ。
-atime (+/-)n
最後にアクセスしたのが n日前の file/dir を検索(+n:n日以上、-n:n日以下)

-ctime (+/-)n
最後にステータスが修正されたのが n日前の file/dir を検索(+n:n日以上、-n:n日以下)

-mtime (+/-)n
最後にデータが修正されたのが n日前の file/dir を検索(+n:n日以上、-n:n日以下)
http://www.rep1.co.jp/staff/200vcxg/217rav/find_n_lcd_-linux_command_dict.htm
なのだが、「何分前」というのは以下を使う。
-amin -cmin -mmin

実際のcronの記載

$ crontab -l
10 0-23/1 * * * find /var/log/xxxx -type f -mmin +180 | grep -E ".log-xxxx$" | xargs rm >/dev/null 2>&1

毎時10分に、/var/log/xxxxディレクトリにある、modify後180分経った.log-xxxxというsuffixの付くlogファイルを削除する。
本来は、ワンライナーではなくシェル化すべきだが、暫定対処なのでそのまま。
gzip化するのなら、こう。

$ crontab -l
10 0-23/1 * * * find /var/log/xxxx -type f -mmin +180 | grep -E ".log-xxxx$" | xargs gzip >/dev/null 2>&1
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0