使用命令获取文件名时 SCP 不起作用

使用命令获取文件名时 SCP 不起作用

我正在尝试自动化导入备份脚本。

为此,我使用此命令来获取最后一个备份文件名:

BACKUP_NAME=$(ssh [email protected] "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是否正常。

答案1

-t从命令中删除ssh,则^M不会出现在文件名中:

BACKUP_NAME="$(ssh [email protected] "ls -w1 /mnt/prod_backup" | tail -1)"

相关内容