バージョン管理サーバーをサポートするRHEL6 VMにNFSマウントがあります。最近、リポジトリの1つが少しおかしくなり、サーバー上でこれが見つかりました。
ls -latri repo.git/refs/heads/
total 28
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21 .
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21
5551209 drwxr-xr-x. 3 git git 4096 Jun 1 22:09 ..
私がtree
ディレクトリに対して実行すると、それは無限に再帰的であるように見えます-例:
repo.git/refs/heads/
├──
│ ├──
│ │ ├──
│ │ │ ├──
│ │ │ │ ├──
│ │ │ │ │ ├──
│ │ │ │ │ │ ├──
│ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
私はそのiノード参照を介してリポジトリを削除しようとしました:
[root@node repo.git/refs]# ls -latri
total 16
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21 heads
[root@node repo.git/refs]# find . -inum 5551210 -exec rm -rf {} \;
rm: cannot remove `./refs/heads': Directory not empty
find: `./refs/heads/': No such file or directory
find: `./refs/heads/': No such file or directory
私はここで何をするか少し迷っています- ls -latri
コマンドのiノード情報は、「heads」ディレクトリに、headsディレクトリへのハードリンクである2つのディレクトリがあることを示しているようです。
これをクリーンアップする方法についてのアイデアは大歓迎です-私がそれが引き起こしていたアプリケーションの問題を解決したと思いますが、ファイルシステムのより大きな問題はソートする必要があります。
ありがとうございました!
編集:追加出力のビット:
隠し文字なし:
[root@node repo.git/refs]# ls -latrib heads/
total 28
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21 .
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21
5551209 drwxr-xr-x. 3 git git 4096 Jun 1 22:09 ..
しかし、ここに私が実際にヘッドディレクトリにいるときの楽しい出力があります:
[root@node repo.git/refs/heads]# ls -latrib
ls: cannot access : No such file or directory
ls: cannot access : No such file or directory
total 12
? -?????????? ? ? ? ? ?
? -?????????? ? ? ? ? ?
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21 .
5551209 drwxr-xr-x. 3 git git 4096 Jun 1 22:09 ..
ls
出力にあるこれらの疑問符は私にとって疑わしいものです。NFSサーバーでfsckを実行しましたか?
ls -latri
これら2つの追加のディレクトリがある場合、iノード5551210のためのリンク数が奇数であると出力は奇数です。やってみls -latrib
ませんか?基本的なファイルシステムのタイプは何ですか?