วิธีการ (ติดตั้ง) ลงจากหลังม้า sshfs เมื่อติดตั้งบนจุดเมานท์ NFS?


15

เพื่อนร่วมงานของฉันมีคอมพิวเตอร์ตั้งโต๊ะที่/homeแชร์กับไฟล์เซิร์ฟเวอร์ของเรา ฉันได้พัฒนาสคริปต์ Perl สำหรับการsshfsติดตั้งไดเรกทอรีบางอย่างในโฮสต์ SSH อื่นซึ่งทำงานได้ดีบนแล็ปท็อปของฉัน

ในคอมพิวเตอร์ของเขาสคริปต์ไม่สามารถลงจากหลังม้าsshfsในตอนท้ายและออกจากจุดติดตั้งที่ไม่สะอาด ฉันไม่พบวิธีการกู้คืนจุดเมานต์อื่นนอกจากการบูตเครื่องใหม่ หลังจากการทดสอบบางอย่างฉันพบว่าความแตกต่างระหว่างการตั้งค่าของเราคือเขา/homeอยู่ใน NFS ในเขา/tmpทำงานได้อย่างไม่มีที่ติ

หลังจากเมานต์ระหว่างการดำเนินการสคริปต์ทุกอย่างเรียบร้อย แต่เมื่อฆ่าsshfsกระบวนการมันจะถูกระบุว่าเป็น<defunc>โดยpsจนถึงกระบวนการหลัก (สคริปต์ Perl) ออกจาก เมื่อรันsshfsคำสั่งraw บนเชลล์ปัญหายังคงเกิดขึ้น

ls -dlเอาท์พุทสำหรับรูปลักษณ์ที่จุดเมานท์เช่นนี้ (ตามที่จำได้ - ฉันไม่มีสำเนาจริงของการส่งออกที่มือเปลือก):

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

(เฉพาะเครื่องหมายคำถามสำหรับข้อมูลส่วนใหญ่อย่างน้อยรายละเอียดการอนุญาตทั้งหมด)

sshfs ติดยังคงแสดงตามmountแต่การดำเนินการยกเลิกการต่อเชื่อมด้วยข้อผิดพลาดอนุญาตปฏิเสธrootแม้กระทั่งเมื่อทำตามที่

ฉันค้นหา Google แต่พบการเปรียบเทียบจำนวนมากระหว่าง sshfs และ NFS สำหรับการเรียกใช้ระบบไฟล์เครือข่ายเท่านั้น ฉันจะทำเมานท์ sshfs / unmount ในไดเรกทอรี NFS ได้อย่างปลอดภัยได้อย่างไร?

คำตอบ:


38

คุณควรจะสามารถถอนติดตั้ง sshfs ที่ใช้ร่วมกันได้โดยดำเนินการ:

 fusermount -u /path/to/sshfs/share

ฉันพยายามนี้ แต่ได้รับอนุญาตปฏิเสธ แน่นอนว่าสามัญumountจะต้องล้มเหลวเมื่อทำงานเป็นผู้ใช้ที่ไม่ใช่รูท
Daniel Böhmer

ส่วนใหญ่เหตุผลที่คุณไม่สามารถยกเลิกการต่อเชื่อม (ด้วยวิธีการใด ๆ ) เป็นเพราะ dir ที่บ้านของเขาถูกเมาท์จาก NFS ที่มันถูกส่งออกพร้อมroot_squashตัวเลือก ดังนั้นรากไม่มีอำนาจในผบ. คุณอาจปิดตัวเองroot_squashแต่อาจปลอดภัยกว่าหากจะเมานที่อื่น
JFlo

2
ฉันลืมทุกครั้งumountหรือfusermount -uไม่ทำงานเมื่อมีการใช้ไดเรกทอรีบางแห่ง ดังนั้นcdออกจากสารบบก่อนที่จะใช้fusermount -uหรือใช้งานlsof /my/local/mountpoint
eli

16

เพียงฆ่ากระบวนการโดยใช้ pkill แล้วยกเลิกการเมานต์เส้นทางโฟลเดอร์ที่เมานต์

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

บางครั้งฉันต้องทำ "sudo umount -f" หรือ "sudo umount -l" แทนที่จะเป็น umount
fchen

0
sudo diskutil umount force ~/mount/

ดูเหมือนว่าคำสั่งนี้จะทำงานใน OS X


6
คุณสามารถขยายคำตอบของคุณเพื่ออธิบายว่าโค้ดนี้ทำอะไรได้บ้างและจะแก้ไขปัญหาได้อย่างไร โค้ดที่ไม่ได้อธิบายนั้นไม่ได้รับการสนับสนุนเนื่องจากไม่ได้สอนวิธีแก้ปัญหา ขอบคุณ จากคิวการตรวจสอบ
fixer1234

นี่สำหรับ OS X คำถามที่ถามสำหรับ Linux
Duncan X Simpson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.