Ho una procedura che desidero avviare solo se diversi test sono stati completati correttamente.C'è un buon modo per rilevare un attacco NFS stante
Un test di cui ho bisogno è che tutte le mie montature NFS sono vive e vegete.
Posso fare di meglio che l'approccio forza bruta:
mount | sed -n "s/^.* on \(.*\) type nfs .*$/\1/p" |
while read mount_point ; do
timeout 10 ls $mount_point >& /dev/null || echo "stale $mount_point" ;
done
Qui timeout
è un programma di utilità che verrà eseguito il comando in background, e sarà ucciderlo dopo un certo tempo, se non SIGCHLD
è stato catturato prima del limite di tempo, restituendo successo/fallimento in modo ovvio.
In inglese: Parse l'uscita di mount
, controllo (delimitata da un timeout) ogni punto di attivazione NFS. Opzionalmente (non nel codice sopra) che si rompe sul primo attacco obsoleto.
Da 'man 3 errno': ESTALE riservati . Questo significa che dovrei cercare un'altra soluzione? –
Penso che dipenda dal tuo kernel. – Teddy
Sì, hai ragione: in una versione successiva della mia distro 'man 3 errno' dire:" 'ESTALE' Gestione file stantio (POSIX.1)) Questo errore può verificarsi per NFS e per altri file system". E anche se sono andato con l'approccio della forza bruta, descritto nella mia domanda, accetterò questa risposta. –