Làm thế nào để (tháo gỡ) hoàn toàn sshfs khi được gắn trên điểm gắn NFS?


13

Đồng nghiệp của tôi có một máy tính để bàn /homeđược chia sẻ trên máy chủ tệp của chúng tôi. Tôi đã phát triển một tập lệnh Perl để sshfsđếm một thư mục nhất định trên một máy chủ SSH khác hoạt động tốt trên máy tính xách tay của tôi.

Trên máy tính của anh ta, kịch bản không thể tháo gỡ sshfsở cuối và để lại điểm gắn kết không sạch sẽ. Tôi không tìm thấy cách nào để phục hồi mountpoint ngoài việc khởi động lại. Sau một số thử nghiệm, tôi thấy rằng sự khác biệt giữa các thiết lập của chúng tôi là của anh ấy /hometrên NFS. Trong anh /tmpấy hoạt động hoàn hảo.

Sau khi gắn kết, trong quá trình hoạt động kịch bản mọi thứ đều ổn. Nhưng khi giết chết sshfsquá trình nó được liệt kê như là <defunc>bởi pscho đến khi quá trình cha mẹ (kịch bản Perl) thoát. Khi chạy một sshfslệnh thô trên shell, vấn đề vẫn xảy ra.

Một ls -dlđầu ra cho mountpoint trông như thế này (như đã nhớ - Tôi không có bản sao thực sự của đầu ra shell trong tay):

? 1 ? ? 4096 Feb  9 15:37 file_archive/

(chỉ có dấu hỏi cho hầu hết thông tin, ít nhất là tất cả các chi tiết cho phép)

Gắn kết sshfs vẫn được liệt kê bởi mountnhưng một hoạt động unmount thất bại với quyền lỗi bị từ chối ngay cả khi làm như root.

Tôi đã tìm kiếm Google nhưng chỉ tìm thấy rất nhiều so sánh giữa sshfs và NFS để chạy các hệ thống tập tin mạng. Làm cách nào tôi có thể thực hiện sshfs mount / unmount trong thư mục NFS một cách an toàn?

Câu trả lời:


35

Bạn sẽ có thể ngắt kết nối chia sẻ sshfs bằng cách thực hiện:

 fusermount -u /path/to/sshfs/share

Tôi đã thử điều này nhưng đã bị từ chối . Tất nhiên một người bình thường umountphải thất bại khi chạy như người dùng không root.
Daniel Böhmer

Rất có thể lý do bạn không thể ngắt kết nối (với bất kỳ phương thức nào) là vì thư mục chính của anh ta được gắn kết từ NFS nơi nó được xuất với root_squashtùy chọn. Vì vậy, root không có thẩm quyền trong dir nhà của mình. Bạn có thể tắt root_squashnhưng có lẽ an toàn hơn khi chỉ gắn kết ở một nơi khác.
JFlo

2
Tôi quên mọi lúc, điều đó umounthoặc fusermount -ukhông hoạt động, khi thư mục được sử dụng ở đâu đó. Vì vậy, cdra khỏi thư mục trước khi sử dụng fusermount -uhoặc sử dụnglsof /my/local/mountpoint
eli

15

Chỉ cần giết tiến trình bằng cách sử dụng pkill và sau đó bỏ gắn đường dẫn thư mục được gắn kết.

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share

Đôi khi tôi phải làm "sudo umount -f" hoặc "sudo umount -l" thay vì umount.
fchen

0
sudo diskutil umount force ~/mount/

Có vẻ như lệnh này hoạt động trong OS X.


6
Bạn có thể mở rộng câu trả lời của mình để giải thích mã này làm gì và cách giải quyết vấn đề không? Mã không giải thích được khuyến khích , bởi vì nó không dạy giải pháp. Cảm ơn. từ hàng đợi đánh giá
fixer1234

Đây là dành cho OS X. Câu hỏi được đặt ra cho Linux.
Duncan X Simpson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.