awk not working correctly

Hi

I am attempting to right a script which will read a table and extract specfic information.

LASTFAILEDJOB=/usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob
cat /usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob
237308646

If i run the following command via CLI i get all the errors which meet the following cretia - $4=="150" || $4=="156", it seems that the syntax is ignorning "$1 >= "237308648" &&" and if written like this "$1 >= "$LASTFAILEDJOB" && " in the script

$1 = Checks for all failed job
$4 = If column $4 equals either 150 or 156

# bpdbjobs -most_columns | grep -i  | awk -F, '{if($1 >= "237308648" && $4=="150" || $4=="156") print $1, $4, $5, $7, $8, $12}'
237322668 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237322411 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237322357 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237322356 156 WAT_NT_PRD sv077839.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237322217 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237321586 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237320477 156 WAT_NT_PRD sv077900.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237320253 156 WAT_NT_PRD sv077839.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237320222 156 WAT_NT_PRD sv077900.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237318659 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237316578 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237315203 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237315129 150 WAT_NT_PRD_SQL_LRG sv191260.xx.com ln2p1001infxxcom ln2p1001inf-hcart3-robot-acs-24
237312932 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237312070 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237309124 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237308801 156 WAT_NT_PRD_SQL_LRG sv180411.xx.com ln2p1001infxxcom ln2p1001inf-hcart3-robot-acs-24
237308645 156 WAT_NT_PRD_SQL_LRG sv191260.xx.com ln2p1001infxxcom ln2p1001inf-hcart3-robot-acs-24

I have even tried

bpdbjobs -most_columns | grep -i  | awk -F, '{if($1 > "237308646") print $0}' | awk -F, '{if($4=="150" || $4="=156") 

Can you please help me rewrite the command, so all 18 lines appear and are greater than $LASTFAILEDJOB.

What i am noticing via the script is only the error codes with status 156 lines are being captured (11 lines out of potential 18)

Thanks

The 'grep -i' does nothing by itself.

You should bracket your statements so the order of operators doesn't get taken wrong. It might be grouping them differently than you think.

I would rewrite this as this:

bpdbjobs -most_columns |
        awk -F, 'NR==FNR { LF=$1; next }
        ($1>LF)&&(($4=="150")||($4=="156")) { print $1, $4, $5, $7, $8, $12 }' /usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob -

Typo by me.

bpdbjobs -most_columns | grep -i  LDN_ | awk -F, '{if($1 > "237308646") print $0}' | awk -F, '{if($4=="150" || $4="=156")

The folowing worked, the guidance provided was very helpful..

bpdbjobs -most_columns | grep -i LDN_ | awk -F, '($1>LASTFAILEDJOB)&&(($4=="150")||($4=="156"))

---------- Post updated at 04:38 PM ---------- Previous update was at 04:26 PM ----------

I have noticed if i run the script again, then the lastfailed statement is not taking affect

cat /usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob
237322668
awk -F, '($1>LASTFAILEDJOB)&&(($4=="150")||($4=="156"))

So it should check for any Jobs greater than 237322668, but it is picking up everything with status 150 and 156. So the errors are being repeated.

Do i need a if statement and if so how do i implement this.

---------- Post updated at 04:39 PM ---------- Previous update was at 04:38 PM ----------

Sorry still does not work even when in quotes

bpdbjobs -most_columns | grep -i LDN_ | awk -F, '($1>"$LASTFAILEDJOB")&&(($4=="150")||($4=="156")) { print $8 }' | wc -l

Any advice please.

 cat /usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob
237322668

237322668 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237322411 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237322357 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237322356 156 WAT_NT_PRD sv077839.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237322217 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237321586 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237320477 156 WAT_NT_PRD sv077900.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237320253 156 WAT_NT_PRD sv077839.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237320222 156 WAT_NT_PRD sv077900.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237318659 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237316578 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237315203 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237315129 150 WAT_NT_PRD_SQL_LRG sv191260.xx.com ln2p1001infxxcom ln2p1001inf-hcart3-robot-acs-24
237312932 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237312070 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237309124 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237308801 156 WAT_NT_PRD_SQL_LRG sv180411.xx.com ln2p1001infxxcom ln2p1001inf-hcart3-robot-acs-24
237308645 156 WAT_NT_PRD_SQL_LRG sv191260.xx.com ln2p1001infxxcom ln2p1001inf-hcart3-robot-acs-24

Have you tried the command I gave you at all?

If you have awk | grep | cut | kitchen | sink | wc -l, you can probably replace that all with awk. It's just a tiny change to what I gave you to do it all.

bpdbjobs -most_columns |
        awk -F, 'NR==FNR { LF=$1; next }
        /[lL][dD][nN]_/ && ($1>LF)&&(($4=="150")||($4=="156")) { print $1, $4, $5, $7, $8, $12 }' /usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob -

I have tried it and here is the following message i get, which still not working..

I am expecting 18 rows not 0

The lastfailed bit is not working..

Script

LASTFAILEDJOB=/usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob
#

cat $LASTFAILEDJOB

RUN=`sudo $ADM_CMD/bpdbjobs -most_columns | grep -i LDN_ | awk -F, 'NR==FNR { $LASTFAILEDJOB=$1; next } /[lL][dD][nN]_/ && ($1>$LASTFAILEDJOB)&&(($4=="150")||($4=="156")) { print $8 }'| wc -l `

Script Output

+ cat /usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob
237308642
+ sudo /usr/openv/netbackup/bin/admincmd/bpdbjobs -most_columns
+ grep -i LDN_
+ wc -l
+ awk -F, NR='=FNR { $LASTFAILEDJOB=$1; next } /[lL][dD][nN]_/ && ($1>$LASTFAILEDJOB)&&(($4=="150")||($4=="156")) { print $8 }'
+ RUN=0

Output i am expecting - 18 rows

237322668 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237322411 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237322357 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237322356 156 WAT_NT_PRD sv077839.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237322217 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237321586 156 CAM_NT_PRD_SQL sv157594.xx.com nmegbp61xxcom W_NMEGBP61_VTL11
237320477 156 WAT_NT_PRD sv077900.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237320253 156 WAT_NT_PRD sv077839.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237320222 156 WAT_NT_PRD sv077900.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237318659 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237316578 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237315203 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237315129 150 WAT_NT_PRD_SQL_LRG sv191260.xx.com ln2p1001infxxcom ln2p1001inf-hcart3-robot-acs-24
237312932 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237312070 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237309124 150 WAT_NT_PRD_SQL sv160720.xx.com nmegbp11.ipe.commerzbank.com C_NMEGBP11_VTL61
237308801 156 WAT_NT_PRD_SQL_LRG sv180411.xx.com ln2p1001infxxcom ln2p1001inf-hcart3-robot-acs-24
237308645 156 WAT_NT_PRD_SQL_LRG sv191260.xx.com ln2p1001infxxcom ln2p1001inf-hcart3-robot-acs-24

Can someone please help with this query