我正在尝试自动化导入备份脚本。
为此,我使用此命令来获取最后一个备份文件名:
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)"