我正在尝试使用 sshpass 在虚拟机之间复制文件。但是当我运行以下命令时:
sshpass -p 'password' rsync --rsync-path="sudo rsync" "/home/myuser/anaconda/Anaconda2-4.3.0-Linux-x86_64.sh" "[email protected]":/opt
我得到输出:sshpass: Failed to run command: No such file or directory
我可以使用 user2 及其密码 ssh 到 destination.vm。
我知道 sshpass 安装在 /usr/bin/sshpass 并且位于路径上。
我仔细检查了要复制的文件夹是否存在。我还通过编辑 sudoers 文件成功设置了无密码 sudo。
我有点不知道还能做些什么来排除故障。你有什么建议吗?我还需要做些什么才能运行 sshpass 吗?
编辑:
感谢您的回复!我已按照建议在 destination.vm 上安装了 rsync,并使用以下命令对其进行了测试:
rsync -v -e ssh test.txt localhost:~
但是,当我尝试使用 sshpass 时,仍然看到相同的消息。我已在其他系统上成功使用此命令,但我不确定此命令有什么不同,导致其无法正常工作。
答案1
在 destination.vm 上安装 rsync
答案2
我遇到了同样的问题。通过从 .bashrc 中删除环境变量并直接将其添加到脚本中解决了该问题。
答案3
我遇到了同样的问题,但就我而言,Rsync 包未安装在源机器(而不是目标机器)中。