我想測試遠端 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
,但不會開啟互動式會話:控制權將返回到本機上的 shell。
答案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