我想将mount命令的输出put与/ etc / filesystems进行比较。基本上我们想要在任何系统更改(重启等)后验证/ etc / filesystems中定义的所有内容是否正确安装
我的基本脚本是:
#!/bin/bash
mountpoint="/vol/test/abc"
if grep -qs "$mountpoint" /etc/filesystems; then
echo "good"
else
echo "bad"
fi
这是正确的做法吗?请建议。另外,如何通过执行mount命令获取所有返回的卷?
答案 0 :(得分:1)
我认为你想要的一般方法是首先通过查看/ etc / filesystems(使用awk,grep的一些组合,生成一个你期望要挂载的所有文件系统的列表)以获得名称)。
然后,通过运行不带参数的 mount 命令获取实际挂载的文件系统列表。
最后,将原始列表与第二个列表进行比较,确保没有遗漏任何内容。
答案 1 :(得分:1)
正如z242所说:
# Matching lines from /etc/filesystems
sed -n 's%^\(/.*\):%\1%p' /etc/filesystems | sort -o f1
# Matching lines from mount command
mount | tail +3 | awk '{print $2}' | sort -o f2
# Now compare the two
comm -3 f1 f2
没有缩进列出的项目是/ etc / filesystems中但未安装的项目。使用缩进列出的项目是已安装但未在/ etc / filesystems中的项目。如果您不关心后者将comm -3
更改为comm -23