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 rcpinfoes 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 sshentrar, 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 remoteme dirá siremoteestá exportando algo , pero ¿hay alguna forma de determinar siremote:/mnt/dirse está exportando sin iniciar una subshell (es decir, una tubería)?showmount -e remotele dirá siremoteha exportado algo.showmount -rsolo 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/…-ropció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 remoteme dirá siremoteestá exportando algo , pero ¿hay alguna forma de determinar siremote:/mnt/dirse está exportando sin iniciar una subshell (es decir, una tubería)?subprocessmó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 querpcinfopuede 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.rpcinfono 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
/netmontaje funcione, el/etc/auto.netscript debe establecer que el servidor tiene una exportación correspondiente. Esto usa elshowmountcomando. Si el servidor solo tiene NFSv4, no funcionará (se muestra showmountRPC: Program not registeredy/net/serversolo informaráFile not found)