Chúng tôi có một NFS mount trên máy ảo RHEL6 hỗ trợ máy chủ kiểm soát phiên bản của chúng tôi - gần đây, một trong những kho lưu trữ đã hơi điên và đây là những gì tôi tìm thấy trên máy chủ:
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 ..
Khi tôi chạy tree
ngược lại thư mục, nó dường như được đệ quy vô hạn - ví dụ:
repo.git/refs/heads/
├──
│ ├──
│ │ ├──
│ │ │ ├──
│ │ │ │ ├──
│ │ │ │ │ ├──
│ │ │ │ │ │ ├──
│ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
Tôi đã cố gắng xóa kho lưu trữ thông qua ref inode của nó:
[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
Tôi hơi mất công phải làm gì ở đây - thông tin inode trên ls -latri
lệnh dường như chỉ ra rằng có 2 thư mục trong thư mục 'Heads' là liên kết cứng đến thư mục Heads?
Mọi ý tưởng về cách dọn dẹp này sẽ được hoan nghênh nhất - nghĩ rằng tôi đã giải quyết được vấn đề ứng dụng mà nó gây ra nhưng vấn đề lớn hơn với hệ thống tập tin cần phải được sắp xếp.
Cảm ơn bạn!
Chỉnh sửa: bit của đầu ra bổ sung:
không có ký tự ẩn:
[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 ..
nhưng đây là một số kết quả thú vị khi tôi thực sự ở trong đầu dir:
[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
đầu ra là nghi ngờ đối với tôi. Bạn đã chạy fsck trên máy chủ NFS chưa?
ls -latri
Đầu ra của bạn là số lẻ vì số lượng liên kết cho inode 5551210 là số lẻ nếu có hai thư mục phụ đó. Bạn có thể thửls -latrib
không? Loại hệ thống tập tin cơ bản là gì?