Tôi đã thấy các câu hỏi tương tự như câu hỏi này trước đây trong một số biến thể, nhưng tôi vẫn chưa tìm được câu trả lời thỏa đáng.
Đây là những gì tôi có:
- Một máy tính xách tay Debian có tính di động cao, chuyển đổi mạng thường xuyên.
- Một máy chủ FreeNAS tại nhà với một loạt các cổ phiếu CIFS trên đó.
Đây là những gì tôi muốn:
- Nếu tôi truy cập thư mục chia sẻ CIFS khi tôi ở nhà, hãy tự động gắn kết chia sẻ CIFS.
- Nếu tôi truy cập vào chia sẻ CIFS khi tôi ở bất kỳ nơi nào khác, hãy trả lại lỗi ngay lập tức (nghĩa là không xem xét mạng trong năm phút trước khi tìm ra NAS không có ở đó).
- Khi tôi tạm dừng hoặc ngủ đông máy, hãy ngắt kết nối một cách sạch sẽ để giá treo không hướng vào không khí mỏng khi máy thức dậy trở lại. Nếu chia sẻ không thể được xóa sạch (một quá trình đang sử dụng một thư mục), thì:
- Hủy bỏ việc đình chỉ / ngủ đông và cho tôi biết ai đang cắm trại trên đỉnh núi; hoặc là
- Buộc unmount anyway và tiến hành đình chỉ / ngủ đông.
- Tín dụng bổ sung: Khi kết nối mạng giảm (rút phích cắm hoặc mất liên kết với WAP), hãy cố gắng ngắt kết nối một cách sạch sẽ.
- Tín dụng bổ sung: Phép thuật này phải độc lập với người quản lý mạng đang sử dụng.
Không có tùy chọn nào tôi từng đọc có vẻ phù hợp:
autofs
có vẻ đáng tin cậy, nhưng dường như không có bất kỳ nhận thức nào về việc đình chỉ / ngủ đông.- Các
_netdev
tùy chọn trongmount
và/etc/fstab
vẻ thú vị, nhưng dường như chỉ để áp dụng cho cổ phiếu NFS. - Tôi chưa thể đi
gvfs
làm, nhưng sau đó tôi đã rất cố gắng.
Bất kỳ đề xuất về cách tiếp cận này?
ĐỊA CHỈ:
Đây là phiên bản ngắn của những gì tôi đã làm cho đến nay. Tôi đã cài đặt autofs
và viết một tập lệnh shell nhỏ để hết hạn tất cả các khối lượng được gắn tự động, được gọi bất cứ khi nào giao diện mạng bị hỏng.
Tôi đã tạo một bản đồ tự động cho máy chủ CIFS của mình, với thông tin đăng nhập được lưu trữ trong một tệp bên ngoài (yuck). Sau đó tôi đã viết kịch bản shell sau:
#!/bin/sh -e
# Expire everything in the automounter.
if [ -f /var/run/autofs.pid ]; then
kill -USR1 "$(cat /var/run/autofs.pid)"
fi
Gửi tín hiệu USR1 đến daemon automount khiến nó buộc hết hạn tất cả các mount không sử dụng. Sau đó tôi đặt đoạn script này vào /etc/network/if-down.d/autofs
, với một liên kết mềm /etc/network/if-post-down.d/autofs
. NetworkManager gọi tất cả các tập lệnh trong thư mục sau khi kết nối bị rớt, do đó, bất kỳ hệ thống tập tin được gắn tự động nào cũng cần được ngắt kết nối.
Tuy nhiên, tôi không hài lòng lắm với sự sắp xếp này. Để bắt đầu, autofs
không phân biệt giữa các khối được gắn tự động và, khi nhận được USR1, sẽ ngắt kết nối tất cả các khối không hoạt động, bao gồm cả các khối không phải mạng, khá nặng tay.
Hơn nữa, mật khẩu đăng nhập cho máy chủ CIFS phải được lưu trữ trong một tệp. Tôi rất muốn được nhắc nhở cho nó.
Dù sao, đó là những gì tôi đã gắn bó với nhau cho đến nay. Nó hoạt động, nhưng tôi sẽ rất vui khi sử dụng thứ gì đó tốt hơn ...
sudo mount -t cifs ...
kết quả tốt hơn. Tôi sẽ quan tâm đến nó nhiều hơn một chút, nhưng tôi không nghĩ Gigolo hoàn toàn là thứ tôi đang tìm kiếm.