Wsześniejsze wersje AIXu wyświetlały informację pojemności folderów używając jako jednostki bloki (512b). Przeliczanie tego na MB było kłopotliwe. Wersja 5.x wprowadziła dodatkowe jednostki – kb, mb i gb. W dalszym ciągu nie podaje to wszystkich detali, które ja potrzebowałem. ten skrypt pracuje na AIX 4.x to 5.x. Wkrótce będę miał okazję zobaczyc jak działa na AIX6.1.
Kliknij tutaj żeby zobaczyć produkcję tego skryptu i porównaj ją z produkcją df.
##################################################
#!/usr/bin/perl -w
use strict;
# by Waldemar Mark Duszyk aka Silicon Logic Ltd.
# 03/06/2003
#
#
my @fileSystems = `df -k`;
my $cntr;
my @tokens;
my $gbUsed;
my $FSsize;
my $FSfree;
my $Pused;
format STDOUT =
@<<<<<<<<<<<<<<<<<@>>>>>>>>>@>>>>>>>>>>>@>>>>>>>@>>>>>>>>>
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$tokens[0],$FSsize,$FSfree,$Pused,$gbUsed,$tokens[6]
.
print “Filesystem Total Size(GB) Free(GB) \%Used Used(GB)
Mounted on\n”;
for ($cntr = 1; $cntr <= $#fileSystems; $cntr++) {
my $holder = $fileSystems[$cntr];
@tokens = split (/\s+/, $holder);
if (( $tokens[1] eq ‘-’) && ( $tokens[2] eq ‘-’)) {
$gbUsed = ‘-’;
$FSsize = ‘-’;
$FSfree = ‘-’;
$Pused = ‘-’;
} else {
$gbUsed = (( $tokens[1] – $tokens[2] ) / 1048576.0);
$gbUsed = sprintf (“%.3f”, $gbUsed);
$FSsize = $tokens[1] / 1048576.0;
$FSsize = sprintf (“%.3f”, $FSsize);
$FSfree = $tokens[2] / 1048576.0;
$FSfree = sprintf (“%.3f”, $FSfree);
$Pused = $tokens[3];
}
write;
}


0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.