Code Bank
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
 
 
User Name:
Password:
Remember me
Go Back   ASP Free ForumsProgrammingCode Bank

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread ASP Free Forums Sponsor:
SlickEdit: Code in over 40 languages across 7 platforms. SlickEdit’s unmatched power, speed, and flexibility allows even the most accomplished developers to write better code faster. Download a free trial today!
  #1  
Old February 6th, 2004, 12:56 PM
Rich's Avatar
Rich Rich is offline
Administrator
Developer Shed Admin.
 
Join Date: Sep 2003
Location: Fort Lauderdale, FL
Posts: 151 Rich User rank is Sergeant (500 - 2000 Reputation Level)Rich User rank is Sergeant (500 - 2000 Reputation Level)Rich User rank is Sergeant (500 - 2000 Reputation Level)Rich User rank is Sergeant (500 - 2000 Reputation Level)Rich User rank is Sergeant (500 - 2000 Reputation Level) 
Time spent in forums: 11 h 37 sec
Reputation Power: 10
Disk list

#! /usr/local/bin/perl
# This script is public domain
# Comments or suggestions to djl@dplace.com

if ( $< != 0 ) {
die "You must be root to run this\n";
}
system("/etc/init.d/volmgt stop");

open(MNT, "mount |");
while(<MNT>) {
($mnt, $on, $dev) = split;
$dev =~ s/.*\///;
$mount{$dev} = $mnt;
}
close(MNT);

if ( -t stdout ) {
# No formatting if output is a terminal
$lpp = 0;
} else {
# Format for printing at 66 lines per page
$lpp = 66;
}
$lines = 0;
chdir("/dev/rdsk");

print localtime() . "\n\n";
$lines += 2;
print "**********\n**********\n**\n** DISKS\n**\n";
print "**********\n**********\n\n";
$lines += 8;
@CD = ();
@disks = <c?t*d?p0>;
foreach $disk (sort disksort @disks) {
# Remember controller device
$ctlr = `ls -l $disk`;
chomp($ctlr);
if ( $ctlr =~ /devices/ ) {
$ctlr =~ s/.*devices\///;
$ctlr =~ s/(.*)\/.*/$1/;
($ctlrs{$ctlr} = $disk) -~ s/t.*//;
}
$type = 'Disk';
@lines = ();
open(SINFO, "/usr/local/bin/scsiinfo -r $disk 2>&1 |" );
while(<SINFO>) {
if ( /Device Type/ ) {
if ( /CD-ROM/ ) {
$type = 'CD-ROM';
push(@CD, $disk);
last;
}
}
push(@lines, $_);
}
next if $type eq 'CD-ROM';

if ( $lpp != 0 and $lines % $lpp > $lpp-19 ) {
while($lines % $lpp != 1) {
print "\n";
++$lines;
}
}
print "Device: $disk\n\n";
$lines += 2;
print @lines;
$lines += @lines;

if ( $lpp != 0 and $lines % $lpp > $lpp-19 ) {
while($lines % $lpp != 1) {
print "\n";
++$lines;
}
}
open(FDISK, "fdisk -W - $disk 2>&1 |" );
$_ = scalar(<FDISK>);
$_ = scalar(<FDISK>);
if ( $lpp != 0 and $lines % $lpp != 1 ) {
print "\n";
++$lines;
}
print "$_";
++$lines;
$dump = 1;
while(<FDISK>) {
if ( $dump and ! / systid:/ ) {
next;
}
$dump = 0;
if ( / systid:/ ) {
# Read the system code translation table
while(<FDISK>) {
last if /^\*$/;
chomp;
($dummy, $code, $type) = split /[ :]+/;
$type =~ s/FDISK_//;
$SysCode{$code} = sprintf "%7s", $type;
}
$_ = scalar <FDISK>;
$_ = scalar <FDISK>;
}
s/\*/ /;
($type) = split ' ';
if ( defined($SysCode{$type}) ) {
s/....../$SysCode{$type}/;
} else {
print " ";
}
print $_;
++$lines;
}
close(FDISK);

open(FMT, "format $disk <<! 2>/dev/null | sed -e '1,/^partition>/d' -e '/^partition>/,\$d'
p
p
q
q
!
|");
$disk =~ s/p0//;
while(<FMT>) {
chomp;
($part) = split;
if ( $part eq "Part" ) {
print "$_ Mount\n";
} else {
print "$_ $mount{$disk . 's' . $part}\n";
}
++$lines;
}
close(FMT);
print "\n\n\n";
$lines += 3;
}

if ( $lpp != 0 and $lines % $lpp > $lpp-17 ) {
while($lines % $lpp != 1) {
print "\n";
++$lines;
}
}
print "**********\n**********\n**\n** CDROM/DVDROM\n**\n";
print "**********\n**********\n\n";
$lines += 8;
foreach $disk (@CD) {
if ( $lpp != 0 and $lines % $lpp > $lpp-9 ) {
while($lines % $lpp != 1) {
print "\n";
++$lines;
}
}
print "Device: $disk\n\n";
$lines += 2;
open(SINFO, "/usr/local/bin/scsiinfo -r $disk 2>&1 |" );
while(<SINFO>) {
print $_;
++$lines;
}
close(SINFO);
print "\n\n\n";
$lines += 3;
}

chdir("/dev");
while($lpp != 0 and $lines % $lpp != 1) {
print "\n";
++$lines;
}
if ( $lpp != 0 and $lines % $lpp > $lpp-17 ) {
while($lines % $lpp != 1) {
print "\n";
++$lines;
}
}
print "**********\n**********\n**\n** TAPES\n**\n";
print "**********\n**********\n\n";
$lines += 8;
foreach $tape (<rmt/?>) {
if ( $lpp != 0 and $lines % $lpp > $lpp-12 ) {
while($lines % $lpp != 1) {
print "\n";
++$lines;
}
}
print "Device: $tape\n\n";
$lines += 2;
$dev = `ls -l $tape`;
chomp( $dev );
if ( $dev =~ /devices/ ) {
($ctlr = $dev) =~ s/.*devices\///;
$ctlr =~ s/(.*)\/.*/$1/;
$ctlr = $ctlrs{$ctlr};
if ( $ctlr eq "" ) {
print "No match for SCSI controller device $dev\n";
} else {
$ctlr =~ s/t.*//;
($target = $dev) =~ s/.*@(.*),(.*):.*/t$1d$2/;
print "Scsi ID: $ctlr$target\n";
++$lines;
}
}
open(SINFO, "/usr/local/bin/scsiinfo -r $tape 2>&1 |" );
while(<SINFO>) {
print $_;
++$lines;
}
close(SINFO);
print "\n\n\n";
$lines += 3;
}
if ( -d "/dev/scsi/scanner" ) {
chdir("/dev/scsi/scanner");
if ( $lpp != 0 and $lines % $lpp > $lpp-17 ) {
while($lines % $lpp != 1) {
print "\n";
++$lines;
}
}
print "**********\n**********\n**\n** SCANNERS\n**\n";
print "**********\n**********\n\n";
$lines += 8;
foreach $scanner (<*>) {
if ( $lpp != 0 and $lines % $lpp > $lpp-9 ) {
while($lines % $lpp != 1) {
print "\n";
++$lines;
}
}
print "Device: $scanner\n\n";
$lines += 2;
open(SINFO, "/usr/local/bin/scsiinfo -r $scanner 2>&1 |" );
while(<SINFO>) {
print $_;
++$lines;
}
print "\n\n\n";
$lines += 3;
close(SINFO);
}
}

system("/etc/init.d/volmgt start >/dev/null");



sub disksort {
($ctrl_a = $a) =~ s/c(.*)t.*/$1/;
($ctrl_b = $b) =~ s/c(.*)t.*/$1/;
if( $ctrl_a != $ctrl_b ) {
return $ctrl_a <=> $ctrl_b;
}
($tgt_a = $a) =~ s/.*t(.*)d.*/$1/;
($tgt_b = $b) =~ s/.*t(.*)d.*/$1/;
if( $tgt_a != $tgt_b ) {
return $tgt_a <=> $tgt_b;
}
($lun_a = $a) =~ s/.*t(.*)d.*/$1/;
($lun_b = $b) =~ s/.*t(.*)d.*/$1/;
if( $lun_a != $lun_b ) {
return $lun_a <=> $lun_b;
}
return $a <=> $b;
}

Reply With Quote
Reply

Viewing: ASP Free ForumsProgrammingCode Bank > Disk list


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 6 hosted by Hostway