可能是我在问一个琐碎的问题,但找不到正确的方法。
我在多台服务器中ssh',并将/ etc / fstab中的预期nfs挂载与/ proc / mounts中的现有挂载进行了比较。
VAR1=$(awk '!/^#/ && $3 == "nfs" {print $2}' /etc/fstab)
VAR2=$(awk '!/^#/ && $3 ~ /nfs[34]/ && $1 !~ /gfs/ {print $2}' /proc/mounts)
例如,来自/etc/fstab
:
/data1
/data2
/data3
来自/proc/mounts
:
/data1
/data2
如果所有挂载都存在并挂载,我必须将其全部打印好,如果缺少一些挂载,则将它们打印出来并重新挂载。
我尝试与以下对象进行比较:
awk 'FNR==NR {a[$1]; next} $1 in a' file1 file2 ( but not works with $VAR1/$VAR2 ).
嵌套循环也没有成功。
提前致谢。
您可以像这样获得丢失的坐骑:
comm -23 <(printf '%s\n' "$VAR1") <(printf '%s\n' "$VAR2")
这将打印仅在中的行$VAR1
。
还是单线:
comm -23 <(awk '!/^#/ && $3 == "nfs" {print $2}' /etc/fstab) <(awk '!/^#/ && $3 ~ /nfs[34]/ && $1 !~ /gfs/ {print $2}' /proc/mounts)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句