Bagaimana saya bisa mengatasi gagang basi?


8

Saya perhatikan sekali ketika saya mematikan server rumah saya sementara desktop saya terhubung melalui NFS bahwa saya terus mendapatkan "basi NFS handle warning" ketika memasuki dir rumah saya, ini menyebabkan masalah dengan beberapa program yang terlihat di folder tersebut.

Bagaimana cara mengatasi masalah ini tanpa me-restart mesin saya?

Debian Squeeze / Wheezy


OS dan / atau distribusi apa yang Anda jalankan?
Jodie C

Saya menggunakan Debian Squeeze
yakamok

Jawaban:


4

Pada Debian Squeeze / Wheezy:

Lepaskan secara paksa mount lokal

umount -f /mnt/dir

Kemudian mulai kembali nfs

/etc/init.d/nfs-common restart

Saya akan terkejut jika Anda dapat memaksa unmount dari sistem file - jadi saya ragu cara di atas akan berhasil.
David Goodwin

umount -f tidak bekerja untuk saya, tetapi umount -jika berhasil!
FreeSoftwareServers

2

Coba skrip shell ini. Bagus untuk saya:

#!/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

Berdasarkan pengalaman saya, tampaknya ini merupakan perubahan 50:50 untuk ini tidak cukup, dan mesin reboot diperlukan. Saya menantikan untuk melihat skrip yang lebih baik, mungkin satu untuk dimasukkan ke crontab. Kami sering menghadapi masalah seperti ini, dengan lebih dari satu mesin per hari.
Sorin

0

Saya biasanya akan mengeluarkan perintah-perintah tersebut (sebagai root):

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

Anda mungkin tidak memerlukan semua itu, tergantung pada cara kerja sistem Anda.


Untuk apa Distro ini?
yakamok
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.