En mi script, tengo varias capas de estado:
- el control remoto está disponible (ping)
- el servicio NFS remoto está activo
- NFS remoto está exportando un determinado directorio
- NFS remoto está montado (montaje)
Para (2) y (3), creo que rcpinfo
es la mejor apuesta. Sin embargo, para (2), no puedo entender cómo limitar mi consulta al servicio NFS sin iniciar un subshell (que no es aceptable para esta aplicación). Para (3), no estoy seguro de que esta información esté disponible de forma remota (sin ssh
entrar, por supuesto).
Estoy trabajando en RHEL 6 y no tengo acceso a programas que no están incluidos en la distribución estándar.
showmount -r remote
me dirá siremote
está exportando algo , pero ¿hay alguna forma de determinar siremote:/mnt/dir
se está exportando sin iniciar una subshell (es decir, una tubería)?showmount -e remote
le dirá siremote
ha exportado algo.showmount -r
solo le dará un mensaje de error ya que esa opción no existe. Podría intentar usar la coincidencia de subcadenas de shell para básicamente grep para una expresión regular en la salida showmount. Tal vez eche un vistazo, por ejemplo, stackoverflow.com/questions/12619720/…-r
opción versus-e
, eso es lo que quise decir :) El 'enfoque de intento' ya se sugirió anteriormente. No me gusta particularmente, pero parece una opción real.Puedes usar
showmount -e <server>
para algunos aspectos del # 3. Cuando las exportaciones son simples, al menos sugeriría que se exporte un directorio (o tal vez un padre de dicho directorio).Para el # 2, no estoy seguro de lo que estás buscando. Si usa NFSv3, buscará al menos mountd y nfs (y en algunos casos puede que desee confirmar los administradores de bloqueo). Puede verificar cualquier explícitamente con rpcinfo como usted dice.
fuente
showmount -r remote
me dirá siremote
está exportando algo , pero ¿hay alguna forma de determinar siremote:/mnt/dir
se está exportando sin iniciar una subshell (es decir, una tubería)?subprocess
módulo. Puedo configurar una tubería con él, pero prefiero no complicar tanto el diseño. Necesito evitar iniciar un subshell para permitir que el script se elimine correctamente: si se elimina, sus procesos secundarios se eliminarán, pero no los procesos secundarios. Por lo tanto, la subshell se eliminaría, pero no los procesos que genera la subshell. También he notado querpcinfo
puede tomar hasta tres minutos para regresar, que es la base original para la cosa sin subshell. Sin embargo, es demasiado tarde para cambiar eso ahora.rpcinfo
no responde a nada más que a SIGKILL (que es una mala atribución, el sistema operativo obviamente simplemente mata el proceso). En cualquier caso, eso todavía iniciaría un shell para comenzarrpcinfo
: el problema subyacente persiste.Listar todos los directorios de exportación pseudo root NFS-V4
Mira mi respuesta en otro hilo
fuente
/net
montaje funcione, el/etc/auto.net
script debe establecer que el servidor tiene una exportación correspondiente. Esto usa elshowmount
comando. Si el servidor solo tiene NFSv4, no funcionará (se muestra showmountRPC: Program not registered
y/net/server
solo informaráFile not found
)