我的小备份脚本使用ssh从临时文件夹移动备份。像这样:
... && ssh name@address "mv /path/to/temp/folder /another/path"
但是在执行之后它会说
mv: can't rename /path/to/temp/folder: No such file or directory
我试图直接在终端重复这个命令 - 结果相同。有趣的是什么
ssh name@address "ls /path/to/temp/folder/"
工作正常。如果我首先登录到远程服务器,然后只执行mv
它也可以。服务器上存在文件夹,ssh用户有权写入它,但如果我合并ssh
和mv
命令 - 它不起作用。
我缺少什么?
客户端是基于Solaris的,服务器是基于Debian的。
编辑:这是完整的脚本
#!/bin/sh
date=`date "+%Y%m%d-%H%M%S"`
BKP=/Core/
rsync -azP \
--link-dest=../current \
--exclude-from=$HOME/.rsync/exclude \
$BKP root@10.0.1.2:/shares/Backups/Saturn/incomplete_backup-$date \
&& ssh root@10.0.1.2 \
"mv /shares/Backups/Saturn/incomplete_backup-$date /share/Backups/Saturn/$date \
&& rm -f /shares/Backups/Saturn/current \
&& ln -s $date /shares/Backups/Saturn/current"
rsync部分就像一个魅力,但mv命令 - 不是。
P.S。我知道以root身份登录是一个坏主意,但服务器是WD NAS,默认情况下它只允许root访问。我还没有完成它的调整,所以即使公钥授权也不会在重新启动后持续存在。但这是另一个故事。
答案 0 :(得分:0)
感谢@tripleee。
我做了一个拼写错误mv /
分享 /Backups/Saturn/incomplete_backup-$date /
分享 /Backups/Saturn/$date
mv 输出听起来像mv: can't rename '/shares/Backups/Saturn/incomplete_backup-20160601-132929': No such file or directory
,只显示第一条路径,这就是我没注意第二条路径的原因。
抱歉愚蠢的问题,我的错。