Shell

測試是否使用 SFTP 命令下載了任何文件

  • May 26, 2019

如何獲取 SFTP 命令的返回碼?

我這樣做是為了從一個目錄下載所有文件。但如果目錄為空,則命令返回1

如何獲取實際程式碼File not found

echo 'get * /var/download' | sftp -b - user@host

或者一個解決方案是忽略/抑制錯誤File not found並返回0(不抑制所有錯誤,只有這個)

OpenSSHsftp成功返回 0,錯誤返回 1。

沒有提供進一步的區分。


要測試,在嘗試下載之前目錄中是否存在任何文件,您可以使用:

echo "ls /remote/path/*" | sftp -b - user@example.com
if [ $? -eq 0 ]
then
   echo "Files exist, can download now"

   echo 'get /remote/path/* /local/path/' | sftp -b - user@example.com
   if [ $? -eq 0 ]
   then
       echo "Files successfully downloaded"
   else
       echo "Files exist, but failed to download"
   fi
else
   echo "Files do not exist"
fi

對於類似的問題,請參閱如何從本地 Linux 腳本檢查遠端 SFTP 伺服器中是否存在文件?

引用自:https://unix.stackexchange.com/questions/520993