0

我想将 mount 命令的输出与 /etc/filesystems 进行比较。基本上,我们要验证在任何系统更改(重新启动等)后,所有内容都按照 /etc/filesystems 中的定义正确安装

我的基本脚本是:

#!/bin/bash
mountpoint="/vol/test/abc"

if grep -qs "$mountpoint" /etc/filesystems; then
  echo "good"
else
  echo "bad"
fi

这是正确的方法吗?请建议。另外,如何获取通过执行 mount 命令返回的所有卷?

4

2 回答 2

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 -3comm -23

于 2013-10-26T16:47:59.043 回答
1

我认为您想要的一般方法是首先通过查看 /etc/filesystems生成您希望安装的所有文件系统的列表(使用 awk、grep 等的某种组合来获取名称)。

然后,通过运行不带参数的mount命令获取实际挂载的文件系统列表。

最后,将原始列表与第二个列表进行比较,确保没有遗漏任何内容。

于 2013-10-26T15:18:59.030 回答