Saya telah melihat pertanyaan yang mirip dengan pertanyaan ini sebelumnya dalam beberapa variasi, tetapi saya belum menemukan jawaban yang memuaskan.
Inilah yang saya miliki:
- Laptop Debian yang sangat mobile yang sering berganti jaringan.
- Server FreeNAS di rumah dengan sekelompok saham CIFS di atasnya.
Inilah yang saya inginkan:
- Jika saya mengakses direktori share CIFS ketika saya di rumah, pasang otomatis share CIFS.
- Jika saya mengakses bagian CIFS ketika saya berada di tempat lain, segera kembalikan kesalahan (yaitu jangan merenungkan jaringan selama lima menit sebelum mencari tahu NAS tidak ada di sana).
- Ketika saya menangguhkan atau hibernasi mesin, bersihkan unmount share sehingga mount tidak menunjuk ke udara tipis ketika mesin bangun kembali. Jika pembagian tidak dapat dilepas secara bersih (proses menggunakan direktori), baik:
- Batalkan penangguhan / hibernasi dan beri tahu saya siapa yang berkemah di gunung; atau
- Paksa unmount pula dan lanjutkan dengan menangguhkan / hibernasi.
- Kredit Ekstra: Ketika koneksi jaringan turun (cabut steker atau hilangkan kaitannya dengan WAP), cobalah unmount unmount share.
- Kredit Ekstra: Sihir ini harus independen dari manajer jaringan yang digunakan.
Tak satu pun dari berbagai opsi yang saya baca tampaknya sesuai:
autofs
tampaknya dapat diandalkan, tetapi tampaknya tidak memiliki kesadaran tentang menangguhkan / hibernasi.- The
_netdev
pilihan dimount
dan/etc/fstab
terlihat menarik, tapi muncul hanya berlaku untuk saham NFS. - Saya belum bisa mulai
gvfs
bekerja, tetapi kemudian saya belum berusaha keras.
Ada saran tentang cara mendekati ini?
TAMBAHAN:
Inilah versi singkat dari apa yang akhirnya saya lakukan sejauh ini. Saya menginstal autofs
, dan menulis skrip shell kecil untuk memaksa-kedaluwarsa semua volume yang dipasang otomatis, yang dipanggil setiap kali antarmuka jaringan turun.
Saya membuat peta automounter untuk server CIFS saya, dengan kredensial disimpan dalam file eksternal (yuck). Saya kemudian menulis skrip shell berikut:
#!/bin/sh -e
# Expire everything in the automounter.
if [ -f /var/run/autofs.pid ]; then
kill -USR1 "$(cat /var/run/autofs.pid)"
fi
Mengirim sinyal USR1 ke daemon automount menyebabkannya kadaluarsa secara paksa semua dudukan yang tidak digunakan. Saya kemudian menempatkan skrip ini di /etc/network/if-down.d/autofs
, dengan softlink /etc/network/if-post-down.d/autofs
. NetworkManager memanggil semua skrip di direktori terakhir ketika koneksi turun, jadi setiap sistem file yang dipasang secara otomatis harus dilepas.
Namun, saya tidak terlalu senang dengan pengaturannya. Sebagai permulaan, autofs
tidak membuat perbedaan antara volume yang dipasang secara otomatis, dan, setelah menerima USR1, akan melepas semua volume yang tidak aktif, termasuk volume non-jaringan, yang agak berat.
Selanjutnya, kata sandi login untuk server CIFS harus disimpan dalam file. Saya lebih suka diminta untuk itu.
Ngomong-ngomong, itulah yang sudah saya klug bersama sejauh ini. Berhasil, tapi saya akan senang menggunakan sesuatu yang lebih baik ...
sumber
sudo mount -t cifs ...
hasil yang lebih disukai hasil disukai. Saya akan mengutak-atiknya sedikit lagi, tetapi saya tidak berpikir Gigolo adalah yang saya cari.Jawaban:
Jika Anda menggunakan NetworkManager, Anda dapat menulis skrip yang dijalankan pada antarmuka jaringan yang naik atau turun.
Deteksi jaringan Anda sendiri dari misalnya pencarian domain dan kemudian mount atau umount ketika antarmuka online:
sumber
/etc/fstab
dengannoauto
opsi