Skip to content


lepsze polecenie df?

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;
}

Posted in skrypty.

Tagged with , , , , , , .


0 Responses

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



Some HTML is OK

or, reply to this post via trackback.