폴더가 마운트된 원격 파일 시스템인지 확인하세요.

폴더가 마운트된 원격 파일 시스템인지 확인하세요.

쉘 스크립트에서 특정 폴더가 마운트된 원격(nfs) 파일 시스템에 있는지 확인하는 가장 좋은 방법(신뢰성, 이식성 등)은 무엇입니까?

다음과 같은 명령을 찾고 있습니다.

chk-remote-mountpoint /my/path/to/folder 

답변1

~처럼스티븐"이 문제에 대한 보편적인 Unix 답변은 없습니다."라고 말합니다.

내 문제에 대해 내가 찾은 최고의 솔루션은 다음과 같습니다.

df -P -T /my/path/to/folder | tail -n +2 | awk '{print $2}'

파일 시스템 유형을 반환합니다(예: nfs또는 ) ext3.

-T옵션아니요기준, 따라서 다른 Unix/Linux 시스템에서는 작동하지 않을 수 있습니다...

~에 따르면자일스' 아래 설명: "이것은 내장되지 않은 Linux에서는 작동하지만 BusyBox, *BSD 등에서는 작동하지 않습니다."

답변2

GNU를 사용할 수 있습니다 stat.

%m마운트 지점을 찾으세요.

$ stat --format=%m /usr/src/linux
/usr/src

%T(파일 시스템 모드에서) 파일 시스템의 이름을 알아냅니다.

$ stat --file-system --format=%T /usr/src/linux
reiserfs

내 시스템에서 은 (는 /usr/src/linux) 마운트된 파일 시스템에 저장되어 /usr/src있으며 파일 시스템 유형은 reiserfs.

man stat자세한 내용은 참조하세요 . 이는 grep | awk파일에 대한 정보가 필요하고 다시 관리되고 싶지 않을 때 거의 항상 유용한 매우 일반적인 명령입니다 .

답변3

mount -l관련 디렉토리를 참조하는 행을 찾으려면 grep, sed또는 를 사용하십시오 .awk

답변4

df(1)의 "-l"은 로컬이 아닌 파일 시스템에서 오류로 인해 실패하므로 이 동작을 사용하여 파일 시스템이 원격인지 확인할 수 있습니다.

df -l /path 2> /dev/null | grep -q "File"
rc=$?
if [ "$rc" = "0" ]
then
   echo "local mount, do stuff"
fi

그러나 -l옵션은표준이 아님.

관련 정보