たま金は小学生並みの思考力しか無い。
止めたほうが良いね、このウン子、ブログはwww
↓
たま金は小学生並みの思考力しか無い。
止めたほうが良いね、このウン子、ブログはwww
↓
perl で Config::Tiny の片手落ちな間違いを正す
use strict;
use warnings;
use Config::Tiny;
my $Config = Config::Tiny->new;
if( -f 'file.ini' ){ # <- 【ここ重要】
$Config = Config::Tiny->read('file.ini'); # ファイルの読み込み
}
my $val = ( defined $Config->{section1}->{val} ) ? defined $Config->{section1}->{val} : ""; # 値の読み込み
delete $Config->{section1}->{"para$val"}; # プロパティの削除
$val++;
$Config->{section1}->{val}= $val; # プロパティがあれば、値の上書き
$Config->{section1}->{"para$val"} = $val; # プロパティがなければ、追加
$Config->write('file.ini'); # 最後に書き込む!
DU.EXEの代わりにBUSYBOXが便利かも。
クソ食えないPELRシリーズ。フォルダ中の中にある、指定の拡張子のファイル1種類だけを、タイムスタンプをチェックしつつ、古いならZIPへ置き換える。サーバーログの古いのは無駄なので、圧縮して保存するために作った。ローカルなHDDもネットワークドライブもOK。 perl pzip.pl \\192.168.0.1\log txt 100 とすると、\\192.168.0.1\log内の*.txtで100日以上古いファイルを*.txt.zipとして圧縮する。*.txtは消す。
use Encode; use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); use File::Basename; use Data::Dumper; $date=0; if( not $#ARGV >= 1 ){ print "経過日数が過ぎた対象ファイル群をZIPファイルへ置換えます\n"; print "perl pzip.pl フォルダ名 対象ファイルの拡張子 [経過日数]\n"; exit -1; } $keika = $ARGV[2] * 60*60*24; $limit = time - $keika; ($sec, $min, $hour, $day, $mon, $year) = localtime( $limit ); $year = $year + 1900; $mon = $mon + 1; print "$year/$mon/$day より古いファイルを削除します(1日ずれます)\n"; print "ファイル収集中\n"; @dir = glob( $ARGV[0] . "/*" . (( $ARGV[1] )? ".$ARGV[1]" : ".log") ); print "****** ソート中! *****\n"; @dir = sort {$a <=> $b} @dir; print "削除中\n"; for $fullname ( @dir ) { $s = (stat($fullname))[9]; if( $s < $limit ) { $zip = Archive::Zip->new(); $zip->addFile( $fullname , $basename); $basename = basename( $fullname ); $filename = $fullname . ".zip"; if ( $zip->writeToFileNamed($filename, 'zip') == AZ_OK ) { print "ZIP OK ", $filename , "\n"; if( (unlink $fullname) == 1 ){ print "...DELETED\n"; } else { print "*** DELETE Failure ***\n" } } else { print "ZIP NG ", $filename , "\n"; } } else { print "Not ZIP ", $filename , "\n"; last; } undef $zip; }