대화형으로 서버에 로그인하지 않고 원격 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