#!/usr/bin/perl #--------HNSログカッター(2002年1月2日版)--------------------------------- #SCRIPT by hiro (http://homepage3.nifty.com/cinema1987/) #mail:fwnk1502@mb.infoweb.ne.jp #スクリプト配布場所:ハイパー日記システムでpnamazuを使おう #(http://homepage3.nifty.com/cinema1987/data/hns_for_pnamazu.html) #EUCコードで保存すること! #--------設定項目-------------------------------------------------------- #このスクリプトの名前。 $script = 'hns_logcut.cgi'; #パスワード $pass = 'pass1234';#半角英数字で指定。必ず変えてください。 #日記のURI $diary_url = 'http://www.foo.bar.ne.jp/~hoge/diary/'; #日記のタイトル $diary_name = 'My DIARY'; #referer_logの絶対パス $referer_logfile = '/home/hoge/diary/log/referer_log'; #batta_logの絶対パス $batta_logfile = '/home/hoge/diary/log/referer_batta_log'; #mail.logの絶対パス $mail_logfile = '/home/hoge/diary/mail/mail.log'; #simple.logの絶対パス $simple_logfile = '/home/hoge/diary/mail/simple.log'; #referer_log.oldの絶対パス $old_logfile = '/home/hoge/diary/log/OLD/referer_log.old'; #rotate_log.cgiのURI $rotate_url = 'rotate_log.cgi'; #admini.cgiのURI $admin_url ='admini.cgi'; #------------設定終了--------------------------------------------------------- #------------処理開始------------------------------------------------------- print "Content-type: text/html\n\n"; &decode; if ($FORM{'pass'} eq "") {&gate;} if ($FORM{'pass'} ne "$pass" && $FORM{'pass'} ne "") { &error("パスワードが違います!"); } if ($FORM{'mode'} eq "" && $FORM{'pass'} eq "$pass") {&logsize;} if ($FORM{'mode'} eq 'batta' && $FORM{'pass'} eq "$pass") { &header; &batta; &footer; } elsif ($FORM{'mode'} eq 'mail' && $FORM{'pass'} eq "$pass") { &header; &mail; &footer; } elsif ($FORM{'mode'} eq 'simple' && $FORM{'pass'} eq "$pass") { &header; &simple; &footer; } elsif ($FORM{'mode'} eq 'old' && $FORM{'pass'} eq "$pass") { &header; &old; &footer; } #------------------------------------------------------------------------------- sub gate{ print <<"EOL"; HNSログカッター

HNSログカッター

パスワードを入力してください。
EOL } sub decode{ if ($ENV{'REQUEST_METHOD'} eq "POST"){ if ($ENV{'CONTENT_LENGTH'} > 50) { &error ("フォーム入力文字列のサイズが大きすぎます。"); } read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{QUERY_STRING}; } @pairs = split(/&/,$buffer); foreach (@pairs) { ($name, $value) = split(/=/, $_); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s//>/g; $value =~ s/\r//g; $FORM{$name} = $value; } } sub logsize{ $logsize = (-s $referer_logfile); $logsize = int ($logsize / 1024); $battalogsize = (-s $batta_logfile); $battalogsize = int ($battalogsize / 1024); $maillogsize = (-s $mail_logfile); $maillogsize = int ($maillogsize / 1024); $simplelogsize = (-s $simple_logfile); $simplelogsize = int ($simplelogsize / 1024); $oldlogsize = (-s $old_logfile); $oldlogsize = int ($oldlogsize / 1024); $total_log = $logsize + $battalogsize + $maillogsize + $simplelogsize + $oldlogsize; print <<"EOL"; HNSログカッター

HNSログカッター

現在のhnsの各種ログサイズを表示しています(小数点以下を切り捨てています)。

・refererログ $logsize KB
・battaログ $battalogsize KB
・mailログ $maillogsize KB
・simpleログ $simplelogsize KB
・referer_oldログ $oldlogsize KB

ログサイズは計 $total_log KBです。

削除ボタンを押すと、該当ログを削除します。
refererログはhnsのrotate_log.cgiにリンクしてありますが、他の場合はログサイズを0にします。
後戻りできませんので、ご注意。

[$diary_nameに戻る] [日記管理者用ページに戻る]

EOL } sub batta{ if ( -e $batta_logfile) { open (LOG, "+>$batta_logfile"); close(LOG); print "

"; print "battaログは削除されました。\n"; print "

"; }else{ print "

"; print "battaログがありません。\n"; print "

"; } } sub mail{ if ( -e $mail_logfile) { open (LOG, "+>$mail_logfile"); close(LOG); print "

"; print "mailログは削除されました。\n"; print "

"; }else{ print "

"; print "mailログがありません。\n"; print "

"; } } sub simple{ if ( -e $simple_logfile) { open (LOG, "+>$simple_logfile"); close(LOG); print "

"; print "simpleログは削除されました。\n"; print "

"; }else{ print "

"; print "simpleログがありません。\n"; print "

"; } } sub old{ if ( -e $old_logfile) { open (LOG, "+>$old_logfile"); close(LOG); print "

"; print "referer_oldログは削除されました。\n"; print "

"; }else{ print "

"; print "referer_oldログがありません。\n"; print "

"; } } sub header { print "\nHNSログカッター\n"; print ""; } sub footer { print "
\n"; print "
\n"; print "[BACK]\n"; print "
\n"; print "\n"; } sub error { print <<"EOF"; エラー

$_[0]


[BACK] EOF exit; }