logrotate の設定をして1日待ってみたけど、ログファイルがローテーションされていない。仕方がないので、-f オプションを使って強制的に行ってみたら、次のようなメッセージが出た。
takatoh@nightschool $ sudo logrotate -f -v sombrero reading config file sombrero Handling 1 logs rotating pattern: /home/sombrero/sombrero/unicorn.log forced from command line (60 rotations) empty log files are rotated, old logs are removed considering log /home/sombrero/sombrero/unicorn.log error: skipping "/home/sombrero/sombrero/unicorn.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
なんだかよくわからないけど、親ディレクトリのパーミッションがセキュアじゃないといってる?設定ファイルに su ディレクティブをセットしろともいってる。
ちょっと調べてみると、次のページが見つかった。
cf. logrotate(8) の create と su ディレクティブについて – はてダ
読んでもよくわからないんだけど、とにかく次の1行を設定ファイルに追加した。
su root root
これでどうだ。
takatoh@nightschool $ sudo logrotate -f -v sombrero reading config file sombrero Handling 1 logs rotating pattern: /home/sombrero/sombrero/unicorn.log forced from command line (60 rotations) empty log files are rotated, old logs are removed considering log /home/sombrero/sombrero/unicorn.log log needs rotating rotating log /home/sombrero/sombrero/unicorn.log, log->rotateCount is 60 dateext suffix '-20150409' glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' glob finding logs to compress failed glob finding old rotated logs failed renaming /home/sombrero/sombrero/unicorn.log to /home/sombrero/sombrero/unicorn.log-20150409 running postrotate script
今度はうまくいった?
takatoh@nightschool $ ls /home/sombrero/sombrero CHANGES bin lib unicorn.conf views Gemfile boot.rb public unicorn.log Gemfile.lock config.yaml rakefile unicorn.log-20150409 app.rb config.yaml.sample start.cmd unicorn.pid app.ru db tmp version.rb
おお、ちゃんとローテートされたファイル(unicorn.log-20150409)ができて、新しいログファイル(unicorn.log)もできている。
これでOKかな。