首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何列出与NFS挂载链接的服务器中可用的软链接目录

如何列出与NFS挂载链接的服务器中可用的软链接目录
EN

Unix & Linux用户
提问于 2018-09-13 17:20:40
回答 1查看 344关注 0票数 0

我们在服务器上有很多目录。这些目录被创建为软链接,并将其与一些NFS共享链接起来。我想列出与NFS共享链接的软链接目录。

我们使用下面的命令创建软链接目录和NFS链接。

代码语言:javascript
复制
client 1 # ln -s /net/rchserver01/data/share2/ /tmp/
client 1 # ln -s /net/rchserver01/data/share1/ /var/
client 1 # ll /tmp/
lrwxrwxrwx 1 root     root  27 Sep 13 11:38 share2 -> /net/rchserver01/data/share2/
client 1 # ll /var/
lrwxrwxrwx 1 root     root  27 Sep 13 11:38 share2 -> /net/rchserver01/data/share1/
EN

回答 1

Unix & Linux用户

发布于 2018-09-13 17:25:41

给定样本输入:

代码语言:javascript
复制
find /tmp -lname '/net/*'

更广泛地说,告诉find探索每一个本地文件系统,但保留在每个文件系统上:

代码语言:javascript
复制
find $(lsblk --list --noheadings --output MOUNTPOINT | grep /) -xdev -lname '/net/*'

更广泛地说,请find搜索本地文件系统,如上面所示,但是建立一个可能的NFS目标列表:

代码语言:javascript
复制
readarray -t nfsmounts < <(awk '$3 ~ /^nfs/ { print $2 }' < /proc/mounts)
excludes=()
excludes+=("(")
excludes+=(" -lname ${nfsmounts[0]}")
for((i=1;i < ${#nfsmounts[@]}; i++))
do
  excludes+=( " -o -lname '${nfsmounts[i]}/*'")
done
excludes+=(")")
find $(lsblk --list --noheadings --output MOUNTPOINT | grep /) -xdev ${excludes[@]}

文件系统起始列表的另一种选择是:对非nodev的文件系统类型进行解析/proc/文件系统:

代码语言:javascript
复制
find $( for type in $(awk '$1 != "nodev"' /proc/filesystems); do mount -l -t "$type" | awk '{print $3}'; done ) \
  -xdev -lname '/net/*'
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/468852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档