linux - 使用本地文件夹密码的服务器上的 Rsync 远程文件夹

标签 linux bash rsync

我正在尝试使用密码将服务器上远程目录中的文件夹同步到本地目录。 SCP 工作,但我无法使正确的 rsync 命令工作。我收到找不到目录或“不是目录”错误。

我正在尝试:

rsync -ratlz --rsh="/usr/bin/sshpass -p $RSYNC_PASSWORD ssh -o StrictHostKeyChecking=no -l adminuser@xxx.xx.xxx.xxx"$serverpath/* $localpath/

$serverpath 有很多目录,里面有文件。

对我有用的 scp 是:

for latestfile in `sshpass -p $RSYNC_PASSWORD ssh adminuser@xxx.xx.xxx.xxx ls -ltr -d ${serverpath}/*`
do

sshpass -p "$RSYNC_PASSWORD" scp -r adminuser@xxx.xx.xxx.xxx:$serverpath/$latestfile $localpath/

done

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

我设法让它工作了。有必要单独包含主机名和服务器路径。 sshpass 需要用户登录凭据和远程服务器的 IP 作为 ssh 命令的一部分,并且应该将其包含在 rsync 命令中。

rsync -avzr -e "sshpass -p $RSYNC_PASSWORD ssh -l adminuser@xxx.xx.xxx.xxx"  adminuser@xxx.xx.xxx.xxx:$serverpath/*  $localpath/

关于linux - 使用本地文件夹密码的服务器上的 Rsync 远程文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45359426/

相关文章:

bash - 不要压缩已经压缩过的文件

bash - rsync 在哪里保存完整和不完整数据传输的日志文件?

linux - rsync 压缩及其工作原理

linux - 编译时指定库目录

linux sed 查找替换同一行的内容

c++ - 使用 C/C++ 的 POSIX 上的物理磁盘 block 大小

bash - 添加到对象列表并覆盖(如果已存在于数组中)

linux - 日志异步写入日志文件

linux - 如何打印 bash 的真实执行路径,即类似于 type -a 的 type -f?

java - 如何将 jar 转换为 rsyncable jar?