W moim skrypcie mam kilka warstw statusu:
- pilot jest dostępny (ping)
- zdalna usługa NFS jest aktywna
- zdalny NFS eksportuje określony katalog
- zdalny NFS jest zamontowany (mount)
W przypadku (2) i (3) uważam, że rcpinfo
jest to najlepszy zakład. Jednak w przypadku (2) nie mogę dowiedzieć się, jak zawęzić moje zapytanie do usługi NFS bez uruchamiania podpowłoki (co jest niedopuszczalne w przypadku tej aplikacji). W przypadku (3) nie jestem pewien, czy te informacje są nawet dostępne zdalnie ( ssh
oczywiście bez wglądu ).
Pracuję nad RHEL 6 i nie mam dostępu do programów, które nie są zawarte w standardowej dystrybucji.
showmount -r remote
powie mi, czy cośremote
eksportuje , ale czy jest jakiś sposób, aby określić, czy jest eksportowany bez uruchamiania podpowłoki (tj. potoku)?remote:/mnt/dir
showmount -e remote
poinformuje cię, czyremote
coś wyeksportował.showmount -r
wyświetli tylko komunikat o błędzie, ponieważ ta opcja nie istnieje. Możesz spróbować użyć dopasowania podłańcucha powłoki, aby zasadniczo grep dla wyrażenia regularnego w wyjściu showmount. Może rzucić okiem na przykład stackoverflow.com/questions/12619720/...-r
opcją kontra-e
- o to mi chodziło :) „Podejście próbujące” zostało już wcześniej zasugerowane. Nie podoba mi się to szczególnie, ale wygląda jak prawdziwa opcja.Możesz użyć
showmount -e <server>
do niektórych aspektów # 3. Gdy eksportowanie jest proste, sugerowałoby to przynajmniej wyeksportowanie katalogu (a może jego rodzica).W przypadku nr 2 nie jestem pewien, czego szukasz. Jeśli używasz NFSv3, będziesz szukał przynajmniej mountd i nfs (w niektórych przypadkach możesz chcieć potwierdzić menedżerów blokad). Możesz to sprawdzić za pomocą rpcinfo, jak mówisz.
źródło
showmount -r remote
powie mi, czy cośremote
eksportuje , ale czy jest jakiś sposób, aby określić, czy jest eksportowany bez uruchamiania podpowłoki (tj. potoku)?remote:/mnt/dir
subprocess
modułu. Mogę z nim skonfigurować potok, ale wolałbym nie komplikować tak bardzo projektu. Muszę unikać uruchamiania podpowłoki, aby umożliwić łagodne zabicie skryptu - jeśli zostanie zabity, jego procesy potomne zostaną zabite, ale nie dzieci procesów potomnych. W ten sposób podpowłoka zostałaby zabita, ale nie procesy, które się odradza. Zauważyłem również,rpcinfo
że powrót może potrwać do trzech minut, co jest pierwotną podstawą rzeczy bez powłoki. Jednak jest już o wiele za późno, aby to zmienić.rpcinfo
nie reaguje na nic oprócz SIGKILL (co jest błędnym przypisaniem - system operacyjny po prostu zabija proces). W każdym razie nadal zaczynałaby się powłoka na startrpcinfo
- podstawowy problem pozostaje.Wyświetl wszystkie katalogi eksportu NFS-V4 pseudo root
Sprawdź moją odpowiedź w innym wątku
źródło
/net
mount mógł działać,/etc/auto.net
skrypt musi ustalić, że serwer ma odpowiedni eksport. To używashowmount
polecenia. Jeśli serwer ma tylko NFSv4, nie będzie działał (showmount wyświetliRPC: Program not registered
i/net/server
po prostu zgłosiFile not found
)