不能 'ls' /mnt 目录

CRT*_*aze 4 ls filesystems directory files

我有一台运行实时数据库的 CentOS-6 机器。/mnt目录有问题。ls由于某种原因,我无法访问该目录。 stat正在工作并显示此输出:

  File: `/mnt/'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: ca02h/51714d    Inode: 16321       Links: 9
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-09-23 06:50:20.000000000 -0500
Modify: 2012-10-29 11:46:33.000000000 -0500
Change: 2012-10-29 11:46:33.000000000 -0500
Run Code Online (Sandbox Code Playgroud)

我也可以cd进入该目录并成功发出touchmkdir命令(或至少没有错误。但是,如果我尝试ls在该目录中运行它只是挂起。此时Ctrl+CCtrl+Z都没有任何效果,我的系统会锁定。我必须关闭我的 ssh 窗口并重新连接才能做其他事情。

我在这里有点不知所措,有没有人知道可能导致这种情况的原因?或者,有没有人知道如何在不重新启动机器的情况下尝试修复它(我之前在另一台机器的同一目录上遇到过这种情况,并通过重新启动进行了纠正),因为这是一台实时机器,我可以'实际上重新启动。

这些是安装在该目录中的文件系统:

blob.XXXXX.com:/blend on /mnt/blend type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
blob.XXXXX.com:/new_log on /mnt/new_log type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
blob.XXXXX.com:/new_backup on /mnt/new_backup type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
blob.XXXXX.com:/vz on /mnt/vz type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
blob.XXXXX.com:/git on /mnt/git type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
Run Code Online (Sandbox Code Playgroud)

有趣的是,输出strace ls /mnt显示了那里的挂载目录。

Ran*_*832 5

有一件事是,ls尝试stat()每一个文件的目录(其中包括,在这种情况下,每根安装的文件系统),无论是命令你尝试这successfuly做到这一点。所以问题很可能出在一个挂载的文件系统上,而不是出在/mnt它本身上。

要了解更多信息,您需要弄清楚您安装了哪些文件系统/mnt,并分别尝试每个文件系统( ls -d /mnt/foo) 以查看是哪个文件系统导致了问题。

  • @0x783czar 当您运行 `strace ls` 时,它会绕过您的 shell 别名。您可能有一个别名,导致 `ls` 实际执行 `ls --color=auto` 或类似的操作。别名导致 `ls` 统计每个目录条目;一个光秃秃的 `ls /mnt` 没有。 (3认同)