Loading ...
Sorry, an error occurred while loading the content.

Re: [PBML] More efficient script

Expand Messages
  • Matthew K
    DISCLAIMER: I don t have vgdisplay, so I can t really test this to see if it works, but it might be a little simpler to start with something closer to this.
    Message 1 of 11 , Apr 3, 2012
    • 0 Attachment
      DISCLAIMER: I don't have vgdisplay, so I can't really test this to see if it works, but it might be a little simpler to start with something closer to this.

      while (`/usr/sbin/vgdisplay
      -v vg03 | /usr/bin/grep 'PV Name| awk '{print
      $4}'`) {
           
      next if  $_ !~ /^\//;
            print "Unallocated
      PV with free extents is $_ \n" unless ( `/usr/sbin/pvdisplay
      $PV | grep 'Allocated PE|awk '{print $3}'`);
      }



      >________________________________
      > From: Paul.G <medura43@...>
      >To: "perl-beginner@yahoogroups.com" <perl-beginner@yahoogroups.com>
      >Sent: Tuesday, April 3, 2012 7:18 AM
      >Subject: Re: [PBML] More efficient script
      >
      >

      >Hi
      >
      >I have written a script that does what I want, but it looks rather messy. Would be interested if any one could indicate how I could make it more efficient. The perl script and output is below.
      >
      >#!/usr/bin/perl
      >use strict;
      >use warnings;
      >
      >my @result;
      >my $result;
      >my $PV;
      >my @PV;
      >my $junk1;
      >my $junk2;
      >my $junk3;
      >my $AllocatedPE;
      >
      >open(CMD,"/usr/sbin/vgdisplay -v vg03 | /usr/bin/grep 'PV Name'|");
      >undef($/);
      >$result = <CMD>;
      >
      >@result = split(/\n/,$result);
      >
      >foreach $result (@result) {
      >          my ($junk1, $junk2, $junk3, $PV) = split(/\s+/, $result);
      >          print "$PV   \n";
      >          push @PV, $PV;
      >}
      >
      >foreach $PV (@PV) {
      >       open(CMD,"/usr/sbin/pvdisplay $PV | grep 'Allocated PE|");
      >       ($junk1, $junk2, $AllocatedPE) = split(/\s+/, <CMD>);
      >       if ($AllocatedPE == 0) {
      >           print "Unallocated PV with free extents is $PV \n";
      >       }
      >}
      >

      >Result:

      >/dev/disk/disk46  
      >/dev/disk/disk48  
      >/dev/disk/disk47  
      >Unallocated PV with free extents is /dev/disk/disk48 
      >
      >cheers
      >
      >Paul
      >
      >________________________________
      >
      >Unsubscribing info is here: http://help.yahoo.com/help/us/groups/groups-32.html
      >
      >Switch to: Text-Only, Daily Digest • Unsubscribe • Terms of Use
      >.
      >
      >[Non-text portions of this message have been removed]
      >
      >
      >
      >
      >

      [Non-text portions of this message have been removed]
    • merlyn@stonehenge.com
      ... Matthew while (`/usr/sbin/vgdisplay Matthew -v vg03 | /usr/bin/grep PV Name| awk {print Matthew $4} `) { Matthew       Matthew next if  $_ !~
      Message 2 of 11 , Apr 3, 2012
      • 0 Attachment
        >>>>> "Matthew" == Matthew K <matt_hew@...> writes:

        Matthew> while (`/usr/sbin/vgdisplay
        Matthew> -v vg03 | /usr/bin/grep 'PV Name| awk '{print
        Matthew> $4}'`) {
        Matthew>      
        Matthew> next if  $_ !~ /^\//;
        Matthew>       print "Unallocated
        Matthew> PV with free extents is $_ \n" unless ( `/usr/sbin/pvdisplay
        Matthew> $PV | grep 'Allocated PE|awk '{print $3}'`);
        Matthew> }

        Oh, hell no. perl, grep, awk, shell! Seriously. :(

        Also, my public announcement that must be repeated from time to time,
        as made evidenced above.

        **************************************************
        *
        * THIS IS NOT THE OFFICIAL perl BEGINNERS GROUP.
        *
        * The official one is at beginners@..., with instructions on how to
        * join at http://lists.perl.org/list/beginners.html.
        *
        * You'll get far better response there, not to say you won't get *any* here.
        *
        **************************************************


        --
        Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
        <merlyn@...> <URL:http://www.stonehenge.com/merlyn/>
        Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
        See http://methodsandmessages.posterous.com/ for Smalltalk discussion
      • Tim Lewis
        Please forgive the hijack Randall. Will you be at the Perl conference in Madison? [Non-text portions of this message have been removed]
        Message 3 of 11 , Apr 3, 2012
        • 0 Attachment
          Please forgive the hijack Randall. Will you be at the Perl conference in Madison?



          [Non-text portions of this message have been removed]
        • Randal L. Schwartz
          YAPC? Yes, I m doing a two hour git tutorial. Sent from my iPhone, so blame it for any speeling misteaks.
          Message 4 of 11 , Apr 3, 2012
          • 0 Attachment
            YAPC? Yes, I'm doing a two hour git tutorial.

            Sent from my iPhone, so blame it for any speeling misteaks.

            On Apr 3, 2012, at 12:20 PM, "Tim Lewis" <twlewis@...> wrote:

            > Please forgive the hijack Randall. Will you be at the Perl conference in Madison?
            >
            >
            >
            > [Non-text portions of this message have been removed]
            >
            >
            >
            > ------------------------------------
            >
            > Unsubscribing info is here: http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
            >
            >
            >
          • Paul.G
            Thanks again for everyone s input, much appreciated. ________________________________ From: Shawn H Corey To:
            Message 5 of 11 , Apr 6, 2012
            • 0 Attachment
              Thanks again for everyone's input, much appreciated.



              ________________________________
              From: Shawn H Corey <shawnhcorey@...>
              To: perl-beginner@yahoogroups.com
              Sent: Tuesday, 3 April 2012 11:30 PM
              Subject: Re: [PBML] More efficient script


               
              On 12-04-03 09:18 AM, Paul.G wrote:
              > my ($junk1, $junk2, $junk3, $PV) = split(/\s+/, $result);

              Unused items should be undef:

              my (undef, undef, undef, $PV) = split(/\s+/, $result);

              You could alternately use an index:

              my $PV = (split(/\s+/, $result))[3];

              --
              Just my 0.00000002 million dollars worth,
              Shawn

              Programming is as much about organization and communication
              as it is about coding.

              [updated for today's programmers]
              "Show me your code and conceal your interfaces, and I shall continue
              to be mystified. Show me your interfaces, and I won't usually need
              your code; it'll be obvious."
              -- Fred Brooks

              Don't be clever; being great is good enough.



              [Non-text portions of this message have been removed]
            Your message has been successfully submitted and would be delivered to recipients shortly.