如何檢查遠端伺服器上是否存在文件

如何檢查遠端伺服器上是否存在文件

我想測試遠端 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

相關內容