¿Cómo puedo resolver un controlador nfs obsoleto?


8

Una vez que apagué el servidor de mi casa mientras mi escritorio estaba conectado a través de NFS, noté que recibía una "advertencia de control de NFS obsoleto" al ingresar a mi directorio de inicio, esto causó problemas con algunos programas que se veían en esas carpetas.

¿Cómo resuelvo este problema sin reiniciar mi máquina?

Debian Squeeze / Wheezy


¿Qué sistema operativo y / o distribución está ejecutando?
Jodie C

Estoy usando Debian Squeeze
yakamok

Respuestas:


4

En Debian Squeeze / Wheezy:

Forzar el desmontaje del montaje local

umount -f /mnt/dir

Luego reinicie nfs

/etc/init.d/nfs-common restart

Me sorprendería si puede forzar el desmontaje de un sistema de archivos, por lo que dudo que lo anterior funcione.
David Goodwin

umount -f no funcionó para mí, pero umount -lf sí.
FreeSoftwareServers

2

Prueba este script de shell. Funciona bien para mi:

#!/bin/bash
# Purpose:
# Detect Stale File handle and remove it
# Script created: July 29, 2015 by Birgit Ducarroz
# Last modification: --
#

# Detect Stale file handle and write output into a variable and then into a file
mounts=`df 2>&1 | grep 'Stale file handle' |awk '{print ""$2"" }' > NFS_stales.txt`
# Remove : ‘ and ’ characters from the output
sed -r -i 's/://' NFS_stales.txt && sed -r -i 's/‘//' NFS_stales.txt && sed -r -i 's/’//' NFS_stales.txt

# Not used: replace space by a new line
# stales=`cat NFS_stales.txt && sed -r -i ':a;N;$!ba;s/ /\n /g' NFS_stales.txt`

# read NFS_stales.txt output file line by line then unmount stale by stale.
#    IFS='' (or IFS=) prevents leading/trailing whitespace from being trimmed.
#    -r prevents backslash escapes from being interpreted.
#    || [[ -n $line ]] prevents the last line from being ignored if it doesn't end with a \n (since read returns a non-zero exit code when it encounters EOF).

while IFS='' read -r line || [[ -n "$line" ]]; do
    echo "Unmounting due to NFS Stale file handle: $line"
    umount -fl $line
done < "NFS_stales.txt"
#EOF

Según mi experiencia, parece ser un cambio 50:50 para que esto no sea suficiente, y se necesita reiniciar la máquina. Tengo muchas ganas de ver un script mejor, tal vez uno para poner en el crontab. Nos encontramos con este tipo de problema muy a menudo, con más de una máquina por día.
sorin

0

Por lo general, emitiría esos comandos (como root):

service nis restart
service autofs restart
service nfs restart
service portmap restart

Es posible que no necesite todos esos, dependiendo de cómo funcione su sistema.


¿Para qué distro es esto?
yakamok
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.