I have /etc/fstab entries on 100 servers and i’m trying to write a awk script to identify following.
JavaScript
x
sup01p.abc.com.au | SUCCESS | rc=0 >>
10.15.23.25:/tools /data/store nfs defaults,nodev 0 0
10.15.23.25:/kdump01 /data/kdump nfs defaults,nodev 0 0
10.15.23.25:/ops /data/ops nfs defaults,nodev 0 0
What i need is, first my awk script need to print the domain name, then it should print
JavaScript
10.15.23.25:/tools /data/store - this is an invalid entry,
tools incorrectly mounted on store and is not valid, but kdump01 mounted correctly on kdump , ops mounted correctly on ops)
How can i print a report like this using awk or sed ? (print only invalid nfs mounts)
output should be like this
JavaScript
sup01p.abc.com.au
10.15.23.25:/tools /data/store
I managed to add the follwing script and it lists servername and mount points
JavaScript
cat check | awk '$1~/com.au/{ print $1 ;next} /10.15.23.25/{print $1;}/data/{print $2;print "======"}'
sup01p.abc.com.au
10.15.23.25:/tools
/data/store
======
10.15.23.25:/kdump01
/data/kdump
=====
10.15.23.25:/ops
/data/ops
======
Advertisement
Answer
awk solution (for your current input):
JavaScript
cat check | awk 'NR==1{ print $1; next }{ m=substr($1,index($1,"/")+1);
sub(/[^a-z]+/,"",m); if($2!~m) print $1,$2 }'
The output:
JavaScript
sup01p.abc.com.au
10.15.23.25:/tools /data/store