[ale] bash assistance

Damon Chesser dchesser at acsi2000.com
Tue May 10 12:24:16 EDT 2011



Damon Chesser
dchesser at acsi2000.com
damon at damtek.com


-----Original Message-----
From: ale-bounces at ale.org [mailto:ale-bounces at ale.org] On Behalf Of The Don Lachlan
Sent: Tuesday, May 10, 2011 11:57 AM
To: ale at ale.org
Subject: Re: [ale] bash assistance

On Tue, May 10, 2011 at 06:28:55AM -0700, Damon Chesser wrote:
> What does tr "\012" "\011"  do?
> Of course I inserted into the code and it works flawlessly, but man tr is
> very cryptic and I can't seem to find anything on google that explains
> "\012" "\011" and what it does.  I have read about "octal codes" but "line
> feed" for 012 and "horizontal tab" for 011.
> So is this tr command replacing a "line feed (new line)" with a "tab"?

Yes. It gives something nicely to split on for the AWK command. If you
swapped it for 'cut', that defaults to using tabs.

> So:  input gives $HEADER followed by a line feed command which is replaced
> by a "tab" then the rest is fed through awk to cut the value I wanted.

Where did $HEADER come from?

Sorry, I was trying to shortcut:  $HEADER was the fact that the previous command printed a header which was run through tail then something was replaced with something:  That was the part where I was getting lost, but your below explanation makes sense and fills in the knowledge gap.

Input produces a header line and then additional lines for each volume,
split by a _form_ feed; we dump the header line (tail), replace the form
feed with a tab (tr) and then print the specific field (awk).

It's not elegant and it works on a few assumptions that I've not checked are
always true, but it should get you to the next step.

tr is an awesome command. Consider how often you have something separated by
newline that you want space separated or vice versa. It's cheap and good.

-L


> On Tue, Apr 26, 2011 at 06:01:22AM -0700, Damon Chesser wrote:
> > df  -T output is:
> > df -T /u008
> > Filesystem    Type   1K-blocks      Used Available Use% Mounted on
> > /dev/mapper/vgoradata-lv008dat
> >           reiserfs   104854396  59278980  45575416  57% /u008
> > The above is exactly as it appears in my term (at least in my email client)
> > So why does df -T "$MNTP" |awk '{print $5}' produce “Available 57%” when
> > the 6th field is actually the one that holds the %used?
> > df -T /u008 |awk '{print $6}'
> > Use%
> > /u008
> > And how can I clean up the output to only display %used as a number% like 57%?
> > Is there a different command I can run to find this number? (I am looking
> > for candidates for increased space).
>
> Damon,
>
> First, if you're combining grep with cut or awk, you should just be using
> awk. If you're using awk without a search, you should just be using cut. I
> didn't find any Useless Use of Cat, so you're ok there. :)
>
> To fix the display:
>
> # Ignore the header; join any other lines by tab
> DF=`df -T "$MNTP" | tail -n +2 | tr "\012" "\011" | awk '{print $6}'`
>
> and
>
> echo "$VG $VGsize $LV $LVsize $MNTP Use% $DF"
>
> If you want it to say "Use%", just print it, don't worry about grepping it
> from df. I think that should set you straight.
>
> -Don
>
>
> > From: ale-bounces at ale.org [mailto:ale-bounces at ale.org] On Behalf Of Jim Kinney
> > Sent: Tuesday, April 26, 2011 8:18 AM
> > To: Atlanta Linux Enthusiasts
> > Subject: Re: [ale] bash assistance
> >
> >
> > $LVM in $DF not defined
> > On Apr 26, 2011 7:38 AM, "Damon Chesser" <dchesser at acsi2000.com<mailto:dchesser at acsi2000.com>> wrote:
> > > Believe it or not, this is above my rudimentary bash skills and I have hit a wall: So I am seeking advice or pointers.
> > >
> > > Scenario: recording Volume Group info on a server by server bases.
> > >
> > > It did not take me long to realize that I wanted to script this. I am putting the output of my script into a spread sheet (copy and paste). The servers I am running this on are remote and I have no convenient way to get the output text to my workstation, so copy and paste works.
> > >
> > > Desired output:
> > >
> > > VGname VGsize LVname LVsize LVmount_point %diskused
> > >
> > > I have all the above working up to LVmount where it all goes horribly bad. Here is my code:
> > > -----start-----
> > > #!/bin/bash
> > >
> > > FILE=/tmp/dlc/vginfo_script.txt
> > >
> > > rm $FILE
> > >
> > > for VG in `vgdisplay | grep -e "VG Name" | awk '{print $3}'`
> > > do
> > > VGsize=`vgdisplay $VG |grep -e "VG Size" | awk '{print $3 $4}'`
> > > for LV in `vgdisplay -v $VG |grep "LV Name" | cut -d\/ -f4`
> > > do
> > > LVsize=`lvdisplay /dev/$VG/$LV | grep "LV Size" | awk '{print $3 " " $4}'`
> > > # for MNTP in `mount |grep "$LVM" | awk '{print $3}'`
> > > # do
> > > # DF=`df -T "$MNTP" |awk '{print $6}'`
> > > # done
> > > echo $VG $VGsize $LV $LVsize $MNTP $DF
> > > done
> > > done > $FILE
> > >
> > > ---end----
> > >
> > > The above code, as written outputs this:
> > >
> > > vgorabak8 375.00GB lvorabak8 374.90 GB
> > > vgorabak7 375.00GB lvorabak7 374.90 GB
> > >
> > > take out the # above and it does this:
> > >
> > > vgorabak8 375.00GB lvorabak8 374.90 GB /var/lib/ntp/proc Use% -
> > > vgorabak7 375.00GB lvorabak7 374.90 GB /var/lib/ntp/proc Use% -
> > >
> > > No idea why. This makes my head hurt. I have tried everything I can think of. It seems I don't think enough!
> > >
> > > Any help would be appreciated.
> > >
> > >
> > >
> > >
> > > Sincerely,
> > >
> > > Damon Chesser
> > > dchesser at acsi2000.com<mailto:dchesser at acsi2000.com>
> > >
> > >
> > >
> > > ________________________________
> > > Disclaimer: This electronic transmission and any attachments contain confidential information belonging to the sender. This information may be legally protected. The information is intended only for the use of the individual or entity named above. If you are not the intended recipient or receive this message in error, you are hereby notified that any disclosure, copying, distribution or taking of any action in reliance on or regarding the contents of this information is strictly prohibited. Please notify the sender immediately if you have received this information in error.
> > >
> > > www.acsi2000.com<http://www.acsi2000.com>
> >
> > _____________________________________________________________________________
> > Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954
> > _____________________________________________________________________________
> >
> > ________________________________
> > Disclaimer: This electronic transmission and any attachments contain confidential information belonging to the sender. This information may be legally protected. The information is intended only for the use of the individual or entity named above. If you are not the intended recipient or receive this message in error, you are hereby notified that any disclosure, copying, distribution or taking of any action in reliance on or regarding the contents of this information is strictly prohibited. Please notify the sender immediately if you have received this information in error.
> >
> > www.acsi2000.com
>
> > _______________________________________________
> > Ale mailing list
> > Ale at ale.org
> > http://mail.ale.org/mailman/listinfo/ale
> > See JOBS, ANNOUNCE and SCHOOLS lists at
> > http://mail.ale.org/mailman/listinfo
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
>
> _____________________________________________________________________________
> Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954
> _____________________________________________________________________________
>
> Disclaimer: This electronic transmission and any attachments contain confidential information belonging to the sender. This information may be legally protected. The information is intended only for the use of the individual or entity named above. If you are not the intended recipient or receive this message in error, you are hereby notified that any disclosure, copying, distribution or taking of any action in reliance on or regarding the contents of this information is strictly prohibited. Please notify the sender immediately if you have received this information in error.
>
> www.acsi2000.com
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
_______________________________________________
Ale mailing list
Ale at ale.org
http://mail.ale.org/mailman/listinfo/ale
See JOBS, ANNOUNCE and SCHOOLS lists at
http://mail.ale.org/mailman/listinfo

_____________________________________________________________________________
Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954
_____________________________________________________________________________

Disclaimer: This electronic transmission and any attachments contain confidential information belonging to the sender. This information may be legally protected. The information is intended only for the use of the individual or entity named above. If you are not the intended recipient or receive this message in error, you are hereby notified that any disclosure, copying, distribution or taking of any action in reliance on or regarding the contents of this information is strictly prohibited. Please notify the sender immediately if you have received this information in error.

www.acsi2000.com



More information about the Ale mailing list