Dalam skrip saya, saya memiliki beberapa lapisan status:
- jarak jauh tersedia (ping)
- layanan NFS jarak jauh aktif
- NFS jarak jauh mengekspor direktori tertentu
- NFS jarak jauh sudah terpasang (mount)
Untuk (2) dan (3), saya percaya rcpinfo
adalah taruhan terbaik. Namun untuk (2), saya tidak tahu cara mempersempit kueri saya ke layanan NFS tanpa memulai subkulit (yang tidak dapat diterima untuk aplikasi ini). Untuk (3), saya tidak yakin informasi ini bahkan tersedia dari jarak jauh (tanpa ssh
masuk, tentu saja).
Saya sedang mengerjakan RHEL 6 dan tidak memiliki akses ke program yang tidak termasuk dalam distribusi standar.
showmount -r remote
akan memberi tahu saya apakahremote
mengekspor sesuatu , tetapi apakah ada cara bagi saya untuk menentukan apakahremote:/mnt/dir
diekspor tanpa memulai subkulit (yaitu pipa)?showmount -e remote
akan memberi tahu Anda jikaremote
telah mengekspor sesuatu.showmount -r
hanya akan memberi Anda pesan kesalahan karena opsi itu tidak ada. Anda bisa mencoba menggunakan pencocokan substring shell untuk pada dasarnya grep untuk ekspresi reguler di output showmount. Mungkin kita lihat misalnya stackoverflow.com/questions/12619720/…-r
opsi versus-e
- itulah yang saya maksud :) 'Pendekatan upaya' telah disarankan sebelumnya. Saya tidak terlalu suka, tapi itu terlihat seperti opsi nyata.Anda dapat menggunakan
showmount -e <server>
untuk beberapa aspek # 3. Ketika ekspor sederhana, paling tidak akan menyarankan bahwa direktori (atau mungkin induk dari direktori semacam itu) diekspor.Untuk # 2, saya tidak yakin apa yang Anda cari. Jika Anda menggunakan NFSv3, Anda akan mencari setidaknya mountd dan nfs (dan dalam beberapa kasus mungkin ingin mengonfirmasi pengelola kunci). Anda dapat memeriksa secara eksplisit dengan rpcinfo seperti yang Anda katakan.
sumber
showmount -r remote
akan memberi tahu saya apakahremote
mengekspor sesuatu , tetapi apakah ada cara bagi saya untuk menentukan apakahremote:/mnt/dir
diekspor tanpa memulai subkulit (yaitu pipa)?subprocess
modul. Saya dapat mengatur pipa dengan itu, tapi saya lebih suka tidak terlalu menyulitkan desain. Saya perlu menghindari memulai subkulit untuk memungkinkan skrip untuk dibunuh dengan anggun - jika terbunuh, proses anak-anaknya akan dibunuh, tetapi tidak anak-anak dari proses anak. Dengan demikian, subkulit akan dibunuh, tetapi bukan proses subkulit menumbuhkan. Saya juga mencatatrpcinfo
perlu waktu hingga tiga menit untuk kembali, yang merupakan dasar orisinal untuk hal tanpa kulit. Sudah terlambat untuk mengubahnya sekarang.rpcinfo
tidak menanggapi apa pun kecuali SIGKILL (yang merupakan kesalahan distribusi - OS jelas-jelas hanya membunuh prosesnya). Bagaimanapun, itu masih akan memulai shell untuk memulairpcinfo
- masalah mendasar masih ada.Daftar semua direktori ekspor pseudo root NFS-V4
Lihat jawaban saya di utas lain
sumber
/net
pemasangan berfungsi,/etc/auto.net
skrip harus menetapkan bahwa server memiliki ekspor yang sesuai. Ini menggunakanshowmount
perintah. Jika server hanya memiliki NFSv4, itu tidak akan berfungsi (showmount displayRPC: Program not registered
, dan/net/server
hanya akan melaporkanFile not found
)