Shell-Script
使用命令獲取文件名時 SCP 不起作用
我正在嘗試自動化導入備份腳本。
為此,我使用此命令來獲取最後一個備份文件名:
BACKUP_NAME=$(ssh user@XX.XX.XX.XX-t "ls -w1 /mnt/prod_backup" | tail -1)
然後我用
scp -3 user@$YY.YY.YY.YY:/mnt/prod_backup/$BACKUP_NAME /home/coldstorage_import/
嘗試下載文件,以便我可以使用它來恢復本地數據庫。
但我得到這個錯誤:
: No such file or directoryackup/backup_prod_2021-11-29-03-00-01.sql
更新檔錯誤看起來不對。
什麼時候,我嘗試通過手動複製/粘貼文件名來下載文件,該命令有效。
我的猜測是某處可能有一個特殊/隱藏的字元,但我無法弄清楚..
編輯:
執行此命令嘗試查看隱藏字元時
echo $BACKUP_NAME | cat -v
我明白了
bizstore_backup_prod_2021-11-16-03-00-01.sql^M
我不確定是否
^M
正常。
-t
從您的ssh
命令中刪除並且^M
不會出現在文件名中:BACKUP_NAME="$(ssh user@XX.XX.XX.XX "ls -w1 /mnt/prod_backup" | tail -1)"