■
- SPDYやQUIC登場の背景。Webの進化がプロトコルを変えつつある。HTML5 Conference 2013 − Publickey
- Perl - スクリプトのログをLTSVで出力(Log::LTSV) - Qiita
- iandeth. - モジュールをuseした際のメモリ使用量(増加量)を調べてみる
- Devel::MemUsedモジュールで(なんかの処理をした際のメモリ使用量を調べる) - ためしにやってみる系
- hollyなblog:GTopなしでperlでモジュールをuseした時のメモリ使用量を調べる
- Logfile::Rotate - perl でログをローテート - うまい棒blog
copyしてから元のfile sizeを0にtruncateしているのであって、move してるわけじゃないから元のfile のinode変わらないので、kill -HUPしなくていいはず。してもいいけど。
- 第11回 ログでアプリケーションの改善プロセスを回す(3):Perl Hackers Hub|gihyo.jp … 技術評論社
- コピーしてinodeが変わるとデーモンの場合などはファイルを開き直す機能が必要。
use strict; use warnings; my $logfile = "/var/log/a.log"; my $maxcycle = 4; foreach my $c (1..$maxcycle) { my $i = $maxcycle - $c; my $oldfile = $i ? "$logfile.$i" : $logfile; my $newfile = join ".", $logfile, $i+1; print "$oldfile $newfile\n"; } __END__ /var/log/a.log.3 -> /var/log/a.log.4 /var/log/a.log.2 -> /var/log/a.log.3 /var/log/a.log.1 -> /var/log/a.log.2 /var/log/a.log -> /var/log/a.log.1
sub _rotate { my $self = shift @_; my $logfile = shift @_; my $logsize = shift @_; my $logmax = shift @_; if((-s $logfile) <= $logsize) { return; } foreach my $c (1..$logmax) { my $i = $logmax - $c; my $oldfile = $i ? "$logfile.$i" : $logfile; my $newfile = join ".", $logfile, $i+1; rename $oldfile, $newfile; # inode変わるとデーモンの場合ファイルを開き直す必要がある。。 # File::Rotateのようにファイルサイズ0にするべき? } }