원격 서버에 파일이 있는지 확인하는 방법

원격 서버에 파일이 있는지 확인하는 방법

대화형으로 서버에 로그인하지 않고 원격 Linux 서버(예: /var/run/test_daemon.pid)의 어딘가에 파일이 존재하는지 테스트하고 싶습니다. 예를 들어, 원격 서버에 특정 파일이 존재하는지 여부에 따라 스크립트가 다르게 동작하도록 할 수 있습니다.

답변1

파일의 위치를 ​​정확히 아는 경우 다음 명령을 사용하면 됩니다.

  ssh user@remote_server  test -f  /path/to/file/filename && echo "YES" || echo "no"

&&테스트에서는 출력이 생성되지 않고 파일이 발견되었는지 여부를 알 수 없기 때문에 시작하는 부분이 필요합니다 .

그렇지 않고, 파일 이름만 알고 있고 그 위치를 잘 모르는 경우,

 ssh user@remote_server find / -type f -name 'name_of_file*' -print

전체 파일 시스템을 통해 파일을 검색합니다.

ssh 사용에 주목하세요. 원격 서버에 연결하고 표현식 다음 명령을 실행 user@remote_server하지만 대화형 세션은 열리지 않습니다. 제어권은 로컬 PC의 셸로 반환됩니다.

답변2

if [[ "`ssh -q user@hostname ls /dir/filename.abc 2>dev/null`" == "/dir/filename.abc" ]] 
then 
echo "file exists"
else
echo "file does not exist"
fi

관련 정보