AutoFS - 계속하거나 종료하기 전에 마운트가 활성화되어 있는지 확인하는 Bash 스크립트

AutoFS - 계속하거나 종료하기 전에 마운트가 활성화되어 있는지 확인하는 Bash 스크립트

이는 autofs 마운트에만 적용됩니다.

레거시 마운트를 확인하는 여러 가지 방법을 찾았으며 그 중 일부는 /proc/mounts 파일을 사용합니다. 현재 마운트에 액세스할 수 없는 경우에도 마운트가 여전히 파일에 있음을 알 수 있습니다. 그게 다야예전에는액세스할 수 있지만 현재 장치가 꺼져 있거나 절전 모드 상태입니다.

이것들은 제가 시도한 것 중 일부에 불과하며 모두 fstab 마운트에서는 작동하는 것처럼 보이지만 autofs 마운트에서는 작동하지 않습니다. 그들은 단순히 autofs 마운트를 현재 사용할 수 없다는 것을 보지 못합니다. mount 또는 findmnt와 같은 명령을 사용하면 중단되는 것 같습니다. CTRL+C를 사용하여 명령을 종료합니다.

스크립트를 통해 파일 시스템이 마운트되었는지 확인하는 방법

https://stackoverflow.com/questions/9422461/check-if-directory-mounted-with-bash

https://serverfault.com/questions/50585/whats-the-best-way-to-check-if-a-volume-is-mounted-in-a-bash-script

궁극적인 목표는 스크립트를 계속 진행하거나 적절하게 종료하기 전에 스크립트가 활성화되어 있는지 확인하기 위해 검사 스크립트를 작성하는 것입니다.

다음은 장치가 종료된 후에도 마운트가 /proc/mounts에 있기 때문에 항상 사용 가능한 것으로 간주되는 URL 중 하나의 예입니다.

if grep -qs '/mnt/Backups' /proc/mounts; then
  echo "Destination reachable. Continuing..."
else
    echo "Destination unreachable. Exiting."
    exit 1
fi
echo "test done"

URL의 또 다른 (더 나은?) 예는 findmnt를 사용하는 것입니다. 그러나 이것도 완전히 유효하지는 않습니다.

if findmnt /mnt/Backups; then
  echo "Destination reachable. Continuing..."
else
    echo "Destination unreachable. Exiting."
    exit 1
fi
echo "test done"

Findmnt 정지: [업데이트: 방금 좀 더 테스트를 했는데 이번에는 정지가 없습니다. 대신 grep 메소드에 보고합니다. 서버를 절전 모드로 전환한 후에도 마운트가 여전히 거기에 있다고 생각합니다. 그런데 오늘 오전에는 얼었어요.]

  • 공유된 경우예전에는설치되었지만 아직 설치되지 않았습니다(예: 데스크톱이 서버에 연결된 후 서버가 종료되는 경우).

일하다:

  • 공유가 마운트된 경우 findmnt는 문제가 없습니다(마운트를 찾습니다).
  • 데스크탑을 시작한 이후 공유가 마운트되지 않은 경우(올바르게 마운트를 찾을 수 없습니다).

RedHat 참조 자료를 찾았습니다. 좀 더 신뢰할 수 있는 소스를 정의해야 할까요? 나는 붙어있다.

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s2-sysinfo-filesystems-findmnt

감사해요.

업데이트: 또한 디렉토리를 확인해 보았습니다.

https://stackoverflow.com/questions/59838/check-if-a-directory-exists-in-a-shell-script

데스크톱에 존재하지 않는 것으로 알고 있는 디렉터리(smeghead)를 찾았는데 "대상에 액세스할 수 없습니다. 종료 중"이라는 응답이 표시되었습니다.

if [ -d "/home/Derek/Desktop/smeghead/" ];  then
    echo "Destination reachable. Continuing..."
else
    echo "Destination unreachable. Exiting."
    exit 1
fi

그러나 /mnt/Backups(autofs로 인해 백업이 사라진 경우)로 경로를 변경하면 명령이 멈추고 Ctrl+C를 눌러야 합니다.

그래서 문제인 것 같습니다무엇autofs 및/또는 /mnt 위치에 문제가 있습니까?

답변1

에서 언급했듯이ubuntu.con의 autofs 페이지

자동 마운트는 액세스할 때만 마운트되고 일정 기간 동안 활동이 없으면 마운트 해제됩니다.

따라서 첫 번째 단계(유효한 autofs 구성을 마친 후!-)는 필요한 마운트 지점에 액세스하는 것입니다.

나는 사용한다마운트 포인트이와 같이:

# try to change directory (or ls) to auto-mount if not yet mounted
cd /mnt/Backups/ > /dev/null 2>&1
# check if mounted:
if mountpoint -q /mnt/Backups/; then
    echo "Destination reachable. Continuing..."
else
    echo "Destination unreachable. Exiting."
fi

당신은 교체할 수 있습니다CD그리고엘에스(아니면 더 나은 해결책일까요?) 현재 디렉터리에 머물고 싶은 경우

관련 정보