我在 RHEL 系统上遇到了一些奇怪的问题。
在我们的系统上,我们的主目录自动挂载在/export/home. 有一些例外,因为我正在尝试将 gluster 用于我们的家庭目录。这些是自动安装在/gluster/home
这适用于我们所有(30 多台)服务器。今天,这停止了对其中之一的工作。我收到错误:
Too many levels of symlinks
Run Code Online (Sandbox Code Playgroud)
当试图cd进入/gluster/home/$HOME...
我最终临时移动/gluster到/gluster_broken,并创建了一个新的/gluster/home,重新启动的 autofs 并且事情再次工作。
现在我想删除/gluster_broken.
问题在于/gluster_broken/home. 我不知道它是从哪里来的。到目前为止,我试图摆脱它的努力没有结果。
[root@dc1-03 /]# rm -rf gluster_broken/
rm: cannot remove `gluster_broken/home': Too many levels of symbolic links
[root@dc1-03 /]# rm -rf /gluster_broken/
rm: cannot remove `/gluster_broken/home': Too many levels of symbolic links
[root@dc1-03 /]# rm -rf /gluster_broken/home/
rm: cannot remove `/gluster_broken/home/': Is a directory
[root@dc1-03 /]# rm -rf /gluster_broken/home
rm: cannot remove `/gluster_broken/home': Too many levels of symbolic links
[root@dc1-03 /]# rmdir /gluster_broken/home/
rmdir: failed to remove `/gluster_broken/home/': Device or resource busy
[root@dc1-03 /]# fuser -m /gluster_broken/home/
Cannot stat /gluster_broken/home/: Too many levels of symbolic links
Cannot stat /gluster_broken/home/: Too many levels of symbolic links
Cannot stat /gluster_broken/home/: Too many levels of symbolic links
[root@dc1-03 /]# ls -ld /gluster_broken/home/
ls: cannot access /gluster_broken/home/: Too many levels of symbolic links
[root@dc1-03 /]# ls -ld /gluster_broken/home
drwxr-xr-x. 2 root root 0 Jan 22 10:20 /gluster_broken/home
[root@dc1-03 /]# fuser -m /gluster_broken/home
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,大多数命令都会产生相同的错误消息。我真的很想摆脱这个问题。但我在这里有点不知所措。有什么建议?
建议命令的输出:
[root@dc1-03 /]# ls /gluster_broken/
home
[root@dc1-03 /]# ls /gluster_broken/home/
ls: cannot access /gluster_broken/home/: Too many levels of symbolic links
[root@dc1-03 /]# ls -hblF /gluster_broken /gluster_broken/home
/gluster_broken:
total 0
drwxr-xr-x. 2 root root 0 Feb 4 12:00 home/
ls: cannot open directory /gluster_broken/home: Too many levels of symbolic links
Run Code Online (Sandbox Code Playgroud)
尝试寻找。
\n\nfind -L /gluster_broken -mindepth 10\nRun Code Online (Sandbox Code Playgroud)\n\n找到链接循环
\n\nrm然后对错误文件进行非递归
find 将跟踪链接并找到相同的“太多级别”错误。我使用 -mindepth 过滤掉任何深度小于 10 的内容,以避免出现正常的文件/目录。是的,这确实假设您的普通树的深度不超过 10 个。该命令试图做的就是找到错误的文件。
\n\n- 编辑
\n\n我认为遵循命令更好,
\n\nfind -L /gluster_broken >/dev/null\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的测试
\n\n$ find .\n.\n./dira\n./dira/a\n./dira/dirb\n./dira/dirb/dirc\n./dira/error\n./dira/b\n./dira/test\n./dira/test/ab&<cd.file\n./dira/test/magic?newlines\n./dira/test/cleanup\n$ find -L . >/dev/null\nfind: \xe2\x80\x98./dira/a\xe2\x80\x99: Too many levels of symbolic links\nfind: \xe2\x80\x98./dira/error\xe2\x80\x99: Too many levels of symbolic links\nfind: \xe2\x80\x98./dira/b\xe2\x80\x99: Too many levels of symbolic links\n$ \nRun Code Online (Sandbox Code Playgroud)\n\n---编辑2
\n\n我认为我检查文件系统的建议(评论)可能是最好的,我刚刚看到这个答案,想知道您是否有类似的问题。
\n