Outils pour utilisateurs

Outils du site


informatique:langages:scripts_perl

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

informatique:langages:scripts_perl [2016/10/10 15:41] (Version actuelle)
Ligne 1: Ligne 1:
 +==== Tester un port en TCP ou UDP ====
 +<code perl>
 +  #!/bin/perl
 +  use Net::Ping;
 +  my ($host,$port)=(shift,shift);
 +  my $timeout=5;
 +      $p = Net::Ping->new("tcp", $timeout);
 +      $p->{port_num} = $port;
 +      $ret=$p->ping($host);
 +      # 0=ok, 1=non joignable
 +      undef($p);
 +      exit($ret==0);
 +</code>
  
 +ou
 +
 +<code perl>
 +#!/usr/bin/perl -w
 +use strict;
 +use Socket;
 +use File::Basename;
 +
 +my ($remote,$port, $iaddr, $paddr, $proto, $ligne,@server);
 +my $fic = ("serv.txt");
 +open(FIC,"<$fic") or die "Impossible d'ouvrir $fic";
 +while(<FIC>)
 +        {
 +        $ligne ="$_";
 +        chomp($ligne);
 +        @server = split(/;/,$ligne);
 +        $remote = $server[0];
 +        $port = $server[1];
 +        if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') }
 +        die "No port" unless $port;
 +        $iaddr   = inet_aton($remote);
 +        $paddr   = sockaddr_in($port, $iaddr);
 +        $proto   = getprotobyname('tcp');
 +        socket(SOCK, PF_INET, SOCK_STREAM, $proto);
 +        print "\n$remote $port :";
 +        connect(SOCK, $paddr) || next;
 +        print "OK";
 +        close (SOCK)            || die "close: $!";
 +        }
 +close(FIC);
 +print "\n";
 +</code>
 +
 +On créé un fichier //serv.txt// qui a pour format :
 +
 +  server;port
 +
 +:!: Aucun soucis en TCP, par contre en UDP ça peut ne pas fonctionner (dépend du serveur et du service en face).
 +
 +
 +==== Vérifier si un fichier a été modifié depuis n secondes ====
 +<code perl>
 +  use File::Basename;
 +  use File::Path;<br/>
 +  $FILE_FAX="d:\\apps\cft\\temp\\fax.zip";
 +  $FILE_RTG="c:\\apps\\cft\\temp\\rtg.zip";
 +  $FILE_LOG="c:\\apps\\log\\exploit\\surv_seekfax.log";<br/>
 +  @temps = localtime(time);
 +  $jour = sprintf("%02d",$temps[3]);
 +  $mois = sprintf("%02d",$temps[4]+1);
 +  $annee = sprintf("%02d",$temps[5]+1900);
 +  $heure = sprintf("%02d",$temps[2]);
 +  $min = sprintf("%02d",$temps[1]);
 +  
 +  sub test_fax()
 +  {
 +   ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($FILE_FAX);
 +   ($now) = time();
 +  
 +   ($delay_fax) = $now - $mtime;
 +    if ($delay_fax > 600) {
 +     print FICLOG "$jour/$mois/$annee $heure:$min ERROR_SEEKFAX_____Un fichier fax.zip est present depuis plus de 5 minutes : $FILE_FAX\n";
 +                                }
 +   }
 +   
 +  open(FICLOG,">>$FILE_LOG") || die "Impossible d'ouvrir $!";
 +  if (-e $FILE_FAX) { test_fax } else { print FICLOG "$jour/$mois/$annee $heure:$min OK pas de fichier fax.zip\n"; }
 +  if (-e $FILE_RTG) { test_rtg } else { print FICLOG "$jour/$mois/$annee $heure:$min OK pas de fichier rtg.zip\n"; }
 +  close(FICLOG);
 +</code>
 +
 +== vxtree.pl ==
 +
 +<code>
 +#!/usr/bin/perl
 +#
 +# vxtree.pl  - provides a tty version of the "view layout" option in vmsa.
 +#              best viewed in wide xterm
 +#
 +# Aug 2003   - Richard Quixley JPMorgan
 +#
 +#
 +# Identifies the following volume types:
 +#       
 +#       1. concat
 +#       2. stripe                                               = (raid-0)
 +#       3. mirror                                               = (raid-1)
 +#       4. raid                                                 = (raid-5)
 +#       5. mirrored-stripe                                      = (raid-0+1) 
 +#       6. [layered volume] - striped-mirror ("striped-pro"   = (raid-1+0 or raid-10)
 +#       7. [layered volume] - concat-mirror ("concatenated-pro")
 +
 +
 +#       USAGE:
 +#       vxtree.pl -a [dg1 dg2 dg3...]     - display all disks and volumes
 +#       vxtree.pl -d [dg1 dg2 dg3...]     - display all disks
 +#       vxtree.pl -g [dg1 dg2 dg3...]     - display all volumes
 +#       vxtree.pl -v [vol1 vol2 vol3...]  - display all listed volumes
 +#       vxtree.pl -s [dg1 dg2 dg3...]     - display summary
 +#       vxtree.pl -V                      - display vxvm version 
 +
 +
 +use Getopt::Std;
 +
 +sub check_vxvm {
 +        ( `swlist VRTSvxvm` ) || die "\nERROR: No Veritas packages installed - exiting...\n\n";
 +}
 +
 +
 +sub get_dg {
 +        @dg_list=();
 +        @dg_list=`/usr/sbin/vxprint -thf|grep "^dg" 2> /dev/null`;
 +        my $n=0;
 +        foreach $item (@dg_list) {
 +                my @f = split(" ", $item, 9999) ;
 +                        $dg_list[$n] = $f[1];
 +                ++$n;
 +        }       
 +}
 +
 +sub check_root {
 +        my $id=`/usr/xpg4/bin/id -u`;
 +        if ( $id > 0 ) {
 +                print "\nWARNING: disk group free space info not available when run as non-root\n";
 +        }
 +}
 +
 +# do disks
 +sub get_disks {
 +&check_root;
 +        my $arg;
 +        $arg=scalar (@ARGV);
 +        if ( $arg < 1 ) {
 +                &get_dg;
 +        } else {
 +                @dg_list=@ARGV;
 +        }
 +
 +
 +        foreach $dg (@dg_list) {
 +                $gp_size=0;
 +                $gp_free=0;
 +                my @gp_size=`/usr/sbin/vxprint -thfdg $dg | grep "^dm" 2> /dev/null`;
 +                foreach my $line (@gp_size) {
 +                        my @arg=split(" ", $line, 99);
 +                        $gp_size += $arg[5] / 2048000;
 +                }
 +                my @gp_free=`/usr/sbin/vxdg -qg $dg free 2> /dev/null`;
 +                foreach my $line (@gp_free) {
 +                        my @arg=split(" ", $line, 99);
 +                        $gp_free += $arg[4] / 2048000;
 +                }
 +                printf "\nDG %-10s  ------------------------------------------------------------------ total/free %.2f/%.2f Gb\n", $dg, $gp_size, $gp_free;
 +                @dg_disks=();
 +                @dg_disks=`/usr/sbin/vxprint -tdg $dg | grep "^dm" 2> /dev/null`;
 +                foreach $line (@dg_disks) {
 +                        my @f = split(" ", $line, 9999) ;
 +                        $dg_disk = $f[1];
 +                        $dg_devices = $f[2];
 +                        $disk_size = $f[5]/2048000;
 +                        $gp_disk_free=0;
 +                        my @gp_disk_free=`/usr/sbin/vxdg -qg $dg free disk $dg_disk 2> /dev/null`;
 +                        foreach my $line (@gp_disk_free) {
 +                                my @arg=split(" ", $line, 99);
 +                                $gp_disk_free += $arg[4] / 2048000;
 +                        }
 +                        printf "      |\n      |___ DISK %-10s            ( DEVICE %10s )               [size/free %.2f/%.2f Gb]\n", $dg_disk, $dg_devices, $disk_size, $gp_disk_free;
 +                        #if ( ! $Options{s} ) {
 +                        @sdisk=();
 +                        @sdisk=`/usr/sbin/vxprint -tsg $dg | grep $dg_disk 2> /dev/null`;
 +                        unless ( $Options{s} )  {
 +                           foreach $sdisk (@sdisk) {
 +                                my @f = split(" ", $sdisk, 9999) ;
 +                                $sd_name = $f[1];
 +                                $sd_size = $f[5]/2048000;
 +                                $sd_device = $f[7];
 +                                printf "                 |________ sub-disk %-15s device %-10s {size %6.3f Gb}\n", $sd_name, $sd_device, $sd_size;
 +                           }
 +                        }
 +                }
 +        }
 +&check_root;
 +}
 +
 +
 +        
 +# do volumes
 +sub get_vols {
 +   my $arg;
 +   $arg=scalar (@ARGV);
 +   if ( $Options{g} ) {
 +          if ( $arg >= 1 ) {
 +                @dg_list=@ARGV;
 +          }
 +   }
 +   foreach $dg (@dg_list) {
 +        # remember that getopts -v switch resets $#ARGV and @ARGV to only what comes after the "-v" so look for no args
 +        # i.e. test for a "-v" switch with no args i.e. all vols
 +        my $arg;
 +        $arg=scalar (@ARGV);
 +        if ( $Options{v} ) {
 +                if ( $arg < 1 ) {
 +                        @dg_vols=`/usr/sbin/vxprint -nvg $dg 2> /dev/null`;
 +                } else {
 +                        @dg_vols=@ARGV;
 +                }
 +        } else {
 +                @dg_vols=`/usr/sbin/vxprint -nvg $dg 2> /dev/null`;
 +        }
 +        
 +        print "\nDG $dg \n";
 +
 +        @sub_vol_parent_volname_array=();
 +        @sub_vol_parent_plexname_array=();
 +        @sub_vol_child_volname_array=();
 +
 +        foreach $vol (@dg_vols) {
 +                @dg_vol_array=`/usr/sbin/vxprint -thfg $dg -v $vol 2> /dev/null`;
 +                @format=();
 +                @format=`/usr/sbin/vxprint -lvg $dg -v $vol  2> /dev/null`;
 +                my @format2=split("=", $format[4], 9999) ;
 +                my @format_pl=split(",", @format2[1], 9999) ;
 +                        $k=0;          # count volumes   
 +                        $pr=0;         ### print array
 +                        @print_array=();        # zero array
 +                        $sub_vol_flag="false";  # starting condition
 +                        # *** $#dg_vol_array is last index of array
 +                        # *** whereas "scalar (@dg_vol_array)" is the number of indices
 +                        while ($k <= $#dg_vol_array) {
 +                                @vol_elements = split(" ", $dg_vol_array[$k], 9999) ;
 +                                if ($vol_elements[0] eq "v") {
 +                                        $reset_plex="true";
 +                                        $vol_size=($vol_elements[5]/2048000);
 +                                        $remember_vol="$vol_elements[1]";
 +                                        $remember_vol_array_no="$pr";
 +                                        # test whether volume is present in sub-vol array, if it is we won't output it yet
 +                                        foreach $item (@sub_vol_child_volname_array) {
 +                                            if ($vol_elements[1] eq $item) {
 +                                                $sub_vol_flag="true";
 +                                                last;
 +                                            }
 +                                        }
 +                                } elsif ($vol_elements[0] eq "pl") {
 +                                        if ( $reset_plex ne "false" ) {
 +                                        $vol_format=($vol_elements[6]);
 +                                            if ( $vol_format eq "CONCAT" ) {
 +                                                $vol_format="concat"
 +                                            } elsif ( $vol_format eq "STRIPE" ) {
 +                                                $vol_format="stripe" 
 +                                            } elsif ( $vol_format eq "RAID" ) {
 +                                                $vol_format="raid" 
 +                                            }
 +                                        }
 +                                        $reset_plex="false";
 +                                        if (scalar (@format_pl) >=2 && $vol_format ne "raid") {
 +                                                $vol_mir_format="mirrored-";
 +                                        # now overwrite our vol line now we know its format
 +                                        $print_array[$remember_vol_array_no]=sprintf "     |\n%14s%-20s%50s%-9s%-15s%11s%6.2f Gb\n",'|___ VOL ', $remember_vol ,'----------------------------------- layout=', $vol_mir_format, $vol_format, '----- size ', $vol_size;
 +                                        } else {
 +                                                $vol_mir_format="";
 +                                        $print_array[$remember_vol_array_no]=sprintf "     |\n%14s%-20s%50s%s%-24s%11s%6.2f Gb\n",'|___ VOL ', $remember_vol ,'----------------------------------- layout=', $vol_mir_format, $vol_format, '----- size ', $vol_size;
 +                                        }
 +                                        unless ( $Options{s} )  {$print_array[$pr]=sprintf "%25s%-85s[%6.2f Gb]\n",'|___ PLEX ', $vol_elements[1] , $vol_size};
 +                                        $remember_plex="$vol_elements[1]";
 +                                        $get_plex_log="$vol_elements[4]";
 +                                } elsif ($vol_elements[0] eq "sv") {
 +                                        $sub_vol_flag="true";
 +                                        $sub_vol_child_volname="$vol_elements[3]";
 +                                        $sub_vol_parent_plex="$remember_plex";
 +                                        $sub_vol_parent_vol="$remember_vol";
 +                                        push(@sub_vol_parent_volname_array, $sub_vol_parent_vol);
 +                                        push(@sub_vol_parent_plexname_array, $sub_vol_parent_plex);
 +                                        push(@sub_vol_child_volname_array, $sub_vol_child_volname);
 +                                        push(@$remember_vol, $sub_vol_child_volname);
 +                                } elsif ($vol_elements[0] eq "sd") { 
 +                                        $size=($vol_elements[5]/2048000);       
 +                                        if ($vol_elements[6] eq "LOG"  || $get_plex_log eq "LOG" ) { $log="DRLog" } else { $log="     "}
 +                                        unless ( $Options{s} )  {$print_array[$pr]=sprintf "%40s%-19s%-10s%-24s{%6.3f Gb}\n",'|___ sub-disk ', $vol_elements[1] , $vol_elements[7], $log, $size};
 +                                }  # if vol_elements
 +                        ++$k;  # k=number of volumes
 +                        ++$pr; # pr=load print array
 +                        } # while $k <= $#dg_vol_array
 +
 +                # print out our data...
 +                $l=0;
 +                while ($l <= $pr) {
 +                        if ( $sub_vol_flag ne "true" && $print_array[$l]) {
 +                                print "$print_array[$l]";
 +                        }
 +                ++$l;  # l=unload print array
 +                } # while $l <= $pr
 +
 +        } # foreach @dg_vols
 +
 +# now process all data for layered volumes...
 +
 +        %seen = ();
 +        @unique_sub_vol_parent_volname_array=();
 +        foreach $item (@sub_vol_parent_volname_array) {
 +                 push(@unique_sub_vol_parent_volname_array, $item) unless $seen{$item}++;
 +        } # foreach item
 +
 +        %seen = ();
 +        @unique_sub_vol_parent_plexname_array=();
 +        foreach $item (@sub_vol_parent_plexname_array) {
 +                 push(@unique_sub_vol_parent_plexname_array, $item) unless $seen{$item}++;
 +        } # foreach item
 +
 +        if ( scalar (@unique_sub_vol_parent_volname_array) >= 1 ) {
 +            $mm=0;
 +            foreach $svp (@unique_sub_vol_parent_volname_array) {
 +#print "\n";
 +                my $nn=0;
 +                @svp_vol_array=();
 +                @svp_vol_array=`/usr/sbin/vxprint -thfg $dg -v $svp 2> /dev/null`;
 +                while ($nn <= $#svp_vol_array) {
 +                @vol_elements3 = split(" ", $svp_vol_array[$nn], 9999);
 +                        if ( scalar (@$svp) == 1 ) {
 +                                $format="concat-mirror";
 +                        } else {
 +                                $format="striped-mirror";
 +                        }
 +                        my $size=($vol_elements3[5]/2048000);
 +                        if ($vol_elements3[0] eq "v") {
 +                                printf "     |\n%14s%-20s%50s%-15s%20s%6.2f Gb\n",'|___ VOL ', $vol_elements3[1] , '----------------------------------- layout=', $format, '----- size ', $size;
 +                        } elsif ($vol_elements3[0] eq "pl") {
 +                                unless ( $Options{s} )  {printf "%25s%-85s[%6.2f Gb]\n",'|___ PLEX ', $vol_elements3[1] , $size};
 +                        } 
 +                ++$nn;
 +                }
 +
 +                foreach $svv (@$svp) {
 +                $n=0;
 +                        @sv_vol_array=();
 +                        @sv_vol_array=`/usr/sbin/vxprint -thfg $dg -v $svv 2> /dev/null`;
 +                        while ($n <= $#sv_vol_array) {
 +                        @vol_elements2 = split(" ", $sv_vol_array[$n], 9999);
 +                                my $size=($vol_elements2[5]/2048000);   
 +                                if ($vol_elements2[5] eq "LOGONLY" || $vol_elements2[6] eq "LOG" ) { $log="DRLog " } else { $log="      "}
 +                                if ($vol_elements2[0] eq "v") {
 +                                        printf "%37s%-68s(%6.2f Gb)\n",'|___ S-VOL ', $vol_elements2[1] , $size;
 +                                } elsif ($vol_elements2[0] eq "pl") {
 +                                        unless ( $Options{s} )  {printf "%48s%-25s%-26s[%6.2f Gb]\n",'|___ PLEX ', $vol_elements2[1] ,$log, $size};
 +                                } elsif ($vol_elements2[0] eq "sd") {
 +                                        #if ($vol_elements2[6] eq "LOG" ) { $log="DRLog" } else { $log="     "}
 +                                        unless ( $Options{s} )  {printf "%63s%-15s%-10s%-6s{%6.3f Gb}\n",'|___ sub-disk ', $vol_elements2[1] , $vol_elements2[7], $log, $size};
 +                                } # if
 +                        ++$n;
 +                        } # while
 +                } # foreach $svv (@$svp)
 +            ++$mm;
 +            } # foreach unique_sub_vol_parent_volname_array
 +        } # if scalar unique_sub_vol_parent_volname_array
 +   } # foreach (@dg_list)
 +} # sub get_data
 +
 +
 +sub do_usage {
 +        print "\nUSAGE:\n\n";
 +        print "  \"vxtree.pl -flag [optional args]\"\n\n";
 +        print "  \"vxtree.pl -a [dg1 dg2 dg3...]\"    - display all disks and volumes\n";
 +        print "  \"vxtree.pl -d [dg1 dg2 dg3...]\"    - display all disks\n";
 +        print "  \"vxtree.pl -g [dg1 dg2 dg3...]\"    - display all volumes\n";
 +        print "  \"vxtree.pl -v [vol1 vol2 vol3...]\" - display all listed volumes\n";
 +        print "  \"vxtree.pl -s [dg1 dg2 dg3...]\"    - display summary\n";
 +        print "  \"vxtree.pl -V\"                     - display Veritas vxvm version\n";
 +        print "  \"vxtree.pl -h\"                     - help\n";
 +        print "\n";
 +}
 +
 +sub do_help {
 +        print "\nvxtree identifies the following volume types:\n=============================================\n";
 +        print "\n1. concat\n";
 +        print "eg.  |___ VOL vol1                       ----------------------------------- layout=concat                  ----- size   0.10 Gb\n";
 +        print "               |___ PLEX vol1-01                                                                              [  0.10 Gb]\n";
 +        print "                          |___ sub-disk testdg03-01        c3t3d0                            { 0.102 Gb}\n";
 +        print "\n2. stripe = (raid-0)\n";
 +        print "eg.  |___ VOL vol2                       ----------------------------------- layout=stripe                  ----- size   0.10 Gb\n";
 +        print "               |___ PLEX vol2-01                                                                              [  0.10 Gb]\n";
 +        print "                          |___ sub-disk testdg04-01        c3t4d0                            { 0.052 Gb}\n";
 +        print "                          |___ sub-disk testdg03-03        c3t3d0                            { 0.052 Gb}\n";
 +        print "\n3. mirror = (raid-1)\n";
 +        print "eg.  |___ VOL vol3                       ----------------------------------- layout=mirrored-concat         ----- size   0.10 Gb\n";
 +        print "               |___ PLEX vol3-01                                                                              [  0.10 Gb]\n";
 +        print "                          |___ sub-disk testdg04-03        c3t4d0                            { 0.102 Gb}\n";
 +        print "               |___ PLEX vol3-02                                                                              [  0.10 Gb]\n";
 +        print "                          |___ sub-disk testdg03-04        c3t3d0                            { 0.102 Gb}\n";
 +        print "\n4. raid = (raid-5)\n";
 +        print "eg.  |___ VOL vol4                       ----------------------------------- layout=raid                    ----- size   0.10 Gb\n";
 +        print "               |___ PLEX vol4-01                                                                              [  0.10 Gb]\n";
 +        print "                          |___ sub-disk testdg04-04        c3t4d0                            { 0.052 Gb}\n";
 +        print "                          |___ sub-disk testdg03-05        c3t3d0                            { 0.052 Gb}\n";
 +        print "                          |___ sub-disk testdg01-01        c2t0d0                            { 0.052 Gb}\n";
 +        print "\n5. mirrored-stripe = (raid-0+1)\n";
 +        print "eg.  |___ VOL vol5                       ----------------------------------- layout=mirrored-stripe         ----- size   0.10 Gb\n";
 +        print "               |___ PLEX vol5-01                                                                              [  0.10 Gb]\n";
 +        print "                          |___ sub-disk testdg04-05        c3t4d0                            { 0.052 Gb}\n";
 +        print "                          |___ sub-disk testdg03-06        c3t3d0                            { 0.052 Gb}\n";
 +        print "               |___ PLEX vol5-02                                                                              [  0.10 Gb]\n";
 +        print "                          |___ sub-disk testdg01-03        c2t0d0                            { 0.052 Gb}\n";
 +        print "                          |___ sub-disk testdg02-03        c3t0d0                            { 0.052 Gb}\n";
 +        print "\n6. [layered volume] - striped-mirror (\"striped-pro\"   = (raid-1+0 or raid-10)\n";
 +        print "eg.  |___ VOL vol6                       ----------------------------------- layout=striped-mirror          ----- size   0.10 Gb\n";
 +        print "               |___ PLEX vol6-03                                                                              [  0.10 Gb]\n";
 +        print "                          |___ S-VOL vol6-L01                                                            (  0.05 Gb)\n";
 +        print "                                      |___ PLEX vol6-P01                                            0.05 Gb]\n";
 +        print "                                                 |___ sub-disk testdg04-06    c3t4d0          { 0.050 Gb}\n";
 +        print "                                      |___ PLEX vol6-P02                                            0.05 Gb]\n";
 +        print "                                                 |___ sub-disk testdg01-04    c2t0d0          { 0.050 Gb}\n";
 +        print "                          |___ S-VOL vol6-L02                                                            (  0.05 Gb)\n";
 +        print "                                      |___ PLEX vol6-P03                                            0.05 Gb]\n";
 +        print "                                                 |___ sub-disk testdg03-07    c3t3d0          { 0.050 Gb}\n";
 +        print "                                      |___ PLEX vol6-P04                                            0.05 Gb]\n";
 +        print "                                                 |___ sub-disk testdg02-04    c3t0d0          { 0.050 Gb}\n";
 +        print "\n7. [layered volume] - concat-mirror (\"concatenated-pro\")\n";
 +        print "eg.  |___ VOL vol7                       ----------------------------------- layout=concat-mirror           ----- size   0.10 Gb\n";
 +        print "               |___ PLEX vol7-03                                                                              [  0.10 Gb]\n";
 +        print "                          |___ S-VOL vol7-L01                                                            (  0.10 Gb)\n";
 +        print "                                      |___ PLEX vol7-P01                                            0.10 Gb]\n";
 +        print "                                                 |___ sub-disk testdg04-07    c3t4d0          { 0.100 Gb}\n";
 +        print "                                      |___ PLEX vol7-P02                                            0.10 Gb]\n";
 +        print "                                                 |___ sub-disk testdg03-08    c3t3d0          { 0.100 Gb}\n";
 +}
 +
 +sub get_bighelp {
 +        `man vxintro`;
 +}
 +
 +sub get_version {
 +        $version=`swlist -l product VRTSvxvm | grep VRTSvxvm | awk '{print $2}' | cut -d, -f1|cut -d: -f2`;
 +        print "\nVeritas Volume Manager version: $version\n";
 +}
 + 
 +&check_vxvm;
 +
 +%Options;
 +getopts('vdgashVH', \%Options);
 +
 +
 +if      ( $Options{v} ) {
 +        &get_version;
 +        &get_dg;
 +        &get_vols;
 +} elsif ( $Options{d}) {
 +        &get_version;
 +        &get_disks;
 +} elsif ( $Options{g}) {
 +        &get_version;
 +        &get_dg;
 +        &get_vols;
 +} elsif ( $Options{a}) {
 +        &get_version;
 +        &get_disks;
 +        &get_vols;
 +} elsif ( $Options{s}) {
 +        &get_version;
 +        &get_disks;
 +        &get_vols;
 +} elsif ( $Options{h}) {
 +        &do_help;
 +} elsif ( $Options{H}) {
 +        &get_bighelp;
 +} elsif ( $Options{V}) {
 +        &get_version;
 +} else {
 +        &do_usage;
 +}
 +
 +
 +
 +##############################################################################
 +### This script is submitted to BigAdmin by a user of the BigAdmin community.
 +### Sun Microsystems, Inc. is not responsible for the
 +### contents or the code enclosed. 
 +###
 +###
 +###  Copyright Sun Microsystems, Inc. ALL RIGHTS RESERVED
 +### Use of this software is authorized pursuant to the
 +### terms of the license found at
 +### http://www.sun.com/bigadmin/common/berkeley_license.jsp
 +##############################################################################
 +</code>
informatique/langages/scripts_perl.txt · Dernière modification: 2016/10/10 15:41 (modification externe)