#!/usr/local/bin/perl -w
use strict;
my $title; $title = "$0";
my $body; $body = '';
sub header;
sub process;
sub footer;
sub error;
# Loop ----------------
&header($title, $body);
&process;
&footer;
exit(0);
#----------------------
sub process {
my $dir = "../../"; # 2つ上のディレクトリを指定
# ディレクトリの指定(トップにしています)
chdir $dir;
# 各ディスク使用量とディレクトリ/ファイル名を配列に取得する
# -k で『KB』キロバイト指定。-m で『MB』メガバイト指定
my @dum = (); @dum = `du -k`;
# 容量の数字で大順にソート
my @data = ();
@data = sort { $b <=> $a } @dum;
# 指定ディレクトリの総容量の取得
my $volume; my $dir_name; ($volume, $dir_name) = split (/\s/, $data[0]);
# 3桁コンマ入れ
$volume =~ s/(?<=\d)(?=(\d\d\d)+(?!\d))/,/g;
print "全ディスク使用量は、$volume KB です。 \n";
print " \n";
print "上位20件 \n";
print "\n";
print "ディスク使用量【KB】 | | ディレクトリ名 | \n";
foreach (1 .. 20) {
my $volume; my $dir_name; ($volume, $dir_name) = split (/\s/, $data[$_]);
$volume =~ s/(?<=\d)(?=(\d\d\d)+(?!\d))/,/g;
print "$volume | | $dir_name | \n";
}
print " \n";
}
#----------------------------------【html】---------------------------------------------
#---- HTMLヘッダー ----
sub header {
my ($title, $body) = @_;
print "Content-type: text/html\n\n";
print "\n";
print "\n";
# print "\n";
print "$title\n";
print "\n";
print "$body\n";
}
#------------------------
sub footer {
print "\n";
exit;
}
## --- エラー処理
sub error {
print "
ERROR !\n";
print "$_[0]\n";
print " \n";
print " |