문제

SFTP를 통해 일부 파일을 전송하기 위해 스크립트를 작성하고 있습니다. 디렉토리를 SSHFS와 장착하여 필요한 디렉토리 구조를 훨씬 쉽게 만들 수 있으므로 로컬 전송으로 전송을 원했습니다. 내가 가진 문제는 네트워크 연결이없는 상황을 처리하는 방법을 잘 모를 것입니다. 기본적으로 SSHFS 명령이 실패했는지 여부를 알 수있는 방법이 필요합니다. 원격 디렉토리를 장착 할 수없는 경우 스크립트를 구제하는 방법이 있습니까?

도움이 되었습니까?

해결책

그냥 테스트하십시오 sshfs 반환 0 (성공) :

sshfs user@host:dir mountpoint || exit 1

위의 것은 논리적 또는 논리적으로 bash에서 작동하기 때문에 작동합니다 || 수행합니다 단락 평가. 오류 메시지를 인쇄 할 수있는 더 좋은 솔루션은 다음과 같습니다.

if !( sshfs user@host:dir mountpoint ); then
  echo "Mounting failed!"
  exit 1
fi

편집하다:

나는 이것이 대부분의 플랫폼에서 잘 작동하는 응용 프로그램의 성공을 확인하는 방법이라고 지적합니다. - 스파 1 분 전에

물론. 조금 더 자세히 설명하려면 : 대부분의 응용 프로그램은 성공시 0을 반환하고 실패시 또 다른 값이 반환됩니다. 쉘은 이것을 알고 있으므로 0의 반환 값을 true로 해석하고 다른 값을 False로 해석합니다. 따라서 논리적 또는 음성 테스트 (느낌표 사용).

다른 팁

디렉토리가 sshfs 산. 위의 예제 사용 실패 :

if !( mountpoint -q /my/dir ); then
    echo "/my/dir is not a mountpoint"
else
    echo "/my/dir is a mountpoint"
fi

오류: -bash: !( mountpoint -q /my/dir ): No such file or directory

나는 다음과 함께 내 코드를 수정했고 성공했다.

if (! mountpoint -q /my/dir ); then
    echo "/my/dir is not a mountpoint"
else
    echo "/my/dir is a mountpoint"
fi
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top