awk - issue to get the right IP


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk - issue to get the right IP
# 1  
Old 09-27-2014
awk - issue to get the right IP

On AIX 5.3 and AIX 6.1, I have this script for checking printers being pingable or not.

Code:
for i in `lsallq`
do
    echo "Queue Name: " $i
    echo "----------------------------------------"
    for j in `lsallqdev -q $i`
    do
        echo "          Device Name:" $j
        hname=`echo $j | cut -f2 -d"@"`
        echo "          Hostname   :" $hname
        ip=`nslookup $hname 2>&1 | awk '/^Address/ {print $2}' | tail -n1`
        if ping -c 1 $ip > /dev/null 2>&1; then
            echo "          IP         :" $ip Pingble.
            PINGABLE="$PINGABLE $hname[$ip]($i)"
        else
            echo "          IP         :" $ip Not Pingble.
            UNPINGABLE="$UNPINGABLE $hname[$ip]($i)"
        fi
        echo ""
    done

    echo ""
done

echo "PINGABLE:"
echo "---------------------------"
for k in $PINGABLE; do
    echo $k
done

echo "UNPINGABLE:"
echo "---------------------------"
for k in $UNPINGABLE; do
    echo $k
done

However, the output gives me the lists with the same IP 10.6.2.2 for all printers:
HTML Code:
Queue Name:  trid2lexlbl_ps
----------------------------------------
          Device Name: hp@trid2lexlbl
          Hostname   : trid2lexlbl
          IP         : 10.6.2.2 Pingble.


Queue Name:  diakbcht1
----------------------------------------
          Device Name: hp@diakbcht1
          Hostname   : diakbcht1
          IP         : 10.6.2.2 Pingble.


Queue Name:  diakbcht1_ps
----------------------------------------
          Device Name: hp@diakbcht1
          Hostname   : diakbcht1
          IP         : 10.6.2.2 Pingble.


Queue Name:  diakblbl1
----------------------------------------
          Device Name: hp@diakblbl1
          Hostname   : diakblbl1
          IP         : 10.6.2.2 Pingble.


Queue Name:  diakblbl1_ps
----------------------------------------
          Device Name: hp@diakblbl1
          Hostname   : diakblbl1
          IP         : 10.6.2.2 Pingble.


Queue Name:  zebb2
----------------------------------------
          Device Name: hp@zebb2
          Hostname   : zebb2
          IP         : 10.6.2.2 Pingble.
.... snipped ....
If I ping each printer hostname, it gives me the right IP, which is different from 10.6.2.2
HTML Code:
ping trid2lexlbl
PING trid2lexlbl: (10.12.3.11): 56 data bytes
64 bytes from 10.12.3.11: icmp_seq=0 ttl=254 time=2 ms
64 bytes from 10.12.3.11: icmp_seq=1 ttl=254 time=1 ms
How do we fix this script and get the right IP output?

Appreciate it!!
# 2  
Old 09-27-2014
Quote:
Originally Posted by Daniel Gate
On AIX 5.3 and AIX 6.1, I have this script for checking printers being pingable or not.

Code:
for i in `lsallq`
do
    echo "Queue Name: " $i
    echo "----------------------------------------"
    for j in `lsallqdev -q $i`
    do
        echo "          Device Name:" $j
        hname=`echo $j | cut -f2 -d"@"`
        echo "          Hostname   :" $hname
        ip=`nslookup $hname 2>&1 | awk '/^Address/ {print $2}' | tail -n1`
        if ping -c 1 $ip > /dev/null 2>&1; then
            echo "          IP         :" $ip Pingble.
            PINGABLE="$PINGABLE $hname[$ip]($i)"
        else
            echo "          IP         :" $ip Not Pingble.
            UNPINGABLE="$UNPINGABLE $hname[$ip]($i)"
        fi
        echo ""
    done
 
    echo ""
done
 
echo "PINGABLE:"
echo "---------------------------"
for k in $PINGABLE; do
    echo $k
done
 
echo "UNPINGABLE:"
echo "---------------------------"
for k in $UNPINGABLE; do
    echo $k
done

However, the output gives me the lists with the same IP 10.6.2.2 for all printers:
HTML Code:
Queue Name:  trid2lexlbl_ps
----------------------------------------
          Device Name: hp@trid2lexlbl
          Hostname   : trid2lexlbl
          IP         : 10.6.2.2 Pingble.
 
 
Queue Name:  diakbcht1
----------------------------------------
          Device Name: hp@diakbcht1
          Hostname   : diakbcht1
          IP         : 10.6.2.2 Pingble.
 
 
Queue Name:  diakbcht1_ps
----------------------------------------
          Device Name: hp@diakbcht1
          Hostname   : diakbcht1
          IP         : 10.6.2.2 Pingble.
 
 
Queue Name:  diakblbl1
----------------------------------------
          Device Name: hp@diakblbl1
          Hostname   : diakblbl1
          IP         : 10.6.2.2 Pingble.
 
 
Queue Name:  diakblbl1_ps
----------------------------------------
          Device Name: hp@diakblbl1
          Hostname   : diakblbl1
          IP         : 10.6.2.2 Pingble.
 
 
Queue Name:  zebb2
----------------------------------------
          Device Name: hp@zebb2
          Hostname   : zebb2
          IP         : 10.6.2.2 Pingble.
.... snipped ....
If I ping each printer hostname, it gives me the right IP, which is different from 10.6.2.2
HTML Code:
ping trid2lexlbl
PING trid2lexlbl: (10.12.3.11): 56 data bytes
64 bytes from 10.12.3.11: icmp_seq=0 ttl=254 time=2 ms
64 bytes from 10.12.3.11: icmp_seq=1 ttl=254 time=1 ms
How do we fix this script and get the right IP output?

Appreciate it!!
Hello Daniel_Gate,

Could you please try PINGABLE="$PINGABLE $hname[ip]($i)"
Not sure though just give a try for same.

Thanks,
R. Singh
# 3  
Old 09-27-2014
Quote:
Originally Posted by RavinderSingh13
Hello Daniel_Gate,

Could you please try PINGABLE="$PINGABLE $hname[ip]($i)"
Not sure though just give a try for same.

Thanks,
R. Singh
It gives me the same output with 10.6.2.2.
# 4  
Old 09-27-2014
Looks like the ip assignment goes wrong. Could you post the nslookup output for all the hosts from $(lsallqdev)? And, have a look at nslookup's stderr...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Help with awk issue

OK, so I am trying to use awk as a method of accessing a table stored in a file to then provide the capability of a look up table. The table is stored in a file named "/Users/jhaney/Desktop/assetTypeMapping.tsv" and looks like this: aCategory aLetter aNumber AssetCat1 A 123 ... (10 Replies)
Discussion started by: jhaneyzz
10 Replies

2. Shell Programming and Scripting

Variable value substitution issue with awk command issue

Hi All, I am using the below script which has awk command, but it is not returing the expected result. can some pls help me to correct the command. The below script sample.ksh should give the result if the value of last 4 digits in the variable NM matches with the variable value DAT. The... (7 Replies)
Discussion started by: G.K.K
7 Replies

3. Shell Programming and Scripting

awk issue

Hi all, i am trying to use below command to see the output of hardware inventory, but i only see 2 first line no output of the command. awk '/Hardware/ {print $0}' XXX_result.txt Hardware inventory: Hardware inventory: any idea how to see whatever is under hardware inventory. i... (11 Replies)
Discussion started by: Jared
11 Replies

4. Shell Programming and Scripting

issue trying to use awk

Hi Gurus, I am facing a similar issue usiung an awk command. Below is my requirement: ---DATA--- A;F;G A;D;E A;D;E B;Z;P C;Z;Q Expected: A F<TAB>G D<TAB>E D<TAB>E B D<TAB>E (1 Reply)
Discussion started by: rajangupta2387
1 Replies

5. Shell Programming and Scripting

AWK Issue

Hey, this is my code, cat $fulltrpath | while read line do inputfile=$(sed 1q $fulltrpath | awk '{ FS = "\t"; print $2$1}') outputpath=$(sed 1q $fulltrpath | awk '{ FS = "\t"; print $3 }') echo $inputfile echo $outputpath cp $inputfile $outputpath let path++ done if i... (1 Reply)
Discussion started by: inshafccna
1 Replies

6. Shell Programming and Scripting

awk NR issue

Hi guys, i am trying to analyze a text file using awk and am not able to solve this issue. This is the piece of code that I have written BEGIN { ## Time to count MACs -> 5 seconds. TIME_LIMIT = 5; k = 50000; } ## For every line. { time_in_seconds = $1... (2 Replies)
Discussion started by: jamie_123
2 Replies

7. Shell Programming and Scripting

Issue with AWK

I have this input file 0FB7,1083,Synchronized,FriNov121655,2816_7RAID5,05F:1_10F:1,10000000NoneNone,DC_db00p01 0FB7,1150,Split,MonApr180658,2816_7R5GC,N/A,N/A,N/A 06C4,0710,Synchronized,WedMar91105,2816_7RAID5,04E:1_11E:1,10000000NoneNone,DL_nb00p25... (1 Reply)
Discussion started by: greycells
1 Replies

8. Shell Programming and Scripting

Issue in awk

In the following code, Im trying to imbed many statements in a single awk statement. But it gives an error on that, for i in `less usage_types_dwh.txt` do cd /u01/app/evident/analysis_lab/usg_type grep $i svc_type.txt | head -1 | awk 'BEGIN {FS=","} {print $1 "==" $2 ":" $3 ":" $4;... (2 Replies)
Discussion started by: alishehzadpaul
2 Replies

9. Shell Programming and Scripting

Awk issue

Can someone please explain below code. $LIST|awk ' /^$/ { next } substr($0,1,4)=="Exiting" { mk = 1; next } mk==1 { print $3,$7,$10,$14; exit } Cheers, gehlnar (5 Replies)
Discussion started by: gehlnar
5 Replies

10. Shell Programming and Scripting

Awk issue

Hi, # grep "^Listen" httpd.conf | awk '{print $2}' FrontEnd_1_IP:8081 FrontEnd_2_IP:8081 8081 8082 8083 # I need to get the values one at a time but I just can't manage to do that. Thanks, Bianca (20 Replies)
Discussion started by: potro
20 Replies
Login or Register to Ask a Question