Rsync 复制失败(“没有这样的文件或目录”)

Rsync 复制失败(“没有这样的文件或目录”)

我刚刚开始学习如何使用 rsync,因为我正在尝试将文件从一台服务器复制到另一台服务器。我正在使用以下命令:

rsync -avzP [email protected]:/public_html/abc/ /www/abc

输入其他服务器的密码后,我收到以下消息:

stdin: is not a tty 
receiving incremental file list 
rsync: change_dir "/public_html/abc" failed: No such file or directory (2) 
sent 8 bytes 
received 101 bytes  8.72 bytes/sec total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1655) [Receiver=3.1.1]

但是,目录 abc 确实存在,我可以浏览它等。名称中没有空格。

有什么想法这可能是由什么引起的吗?

答案1

该错误是由于/public_html/abc远程系统上没有目录所致。

根据评论,源目录实际上位于用户的主目录中,而不是路径中/public_html

所以:

rsync -avzP [email protected]:public_html/abc/ /www/abc

在这里,我们访问public_html/abc用户的主目录而不是文件系统的根目录。


该警告stdin: is not a tty来自以下事实:您的 shell 的交互式 shell 启动文件正在远程主机上被调用(您的~/.bashrc文件,如果您使用的是bash),并且您正在其中执行需要终端的操作。

您可以编辑远程计算机上的 shell 启动文件并在顶部附近插入以下内容:

[ ! -t 0 ] && return

~/.bashrc对于标准输入流未连接到终端的所有 shell 会话,这将停止执行 例如。

答案2

您需要添加连接详细信息,例如。供 SSH 使用--rsh=ssh

尝试:

rsync -avzP --rsh=ssh [email protected]:/public_html/abc/ /www/abc

并确保路径正确。这些路径是绝对路径还是相对路径:/public_html/abc/, /www/abc?

答案3

当使用剥离的 Docker 映像时,并不总是安装 SSH,并且还会导致此错误:

apt-get install openssh-client

答案4

首先确保 ssh 用户有写入该文件夹的权限,

/www/abc 

运行下面这个命令

rsync -avzP -e ssh /www/abc user@destinationFolderPath

笔记

  • -v“详细”(-vv将提供更详细的信息)
  • -e "ssh options" - 指定 ssh 作为远程 shell
  • -a - “存档模式” - 它保留权限(所有者、组)、时间、符号链接和设备
  • -z 在传输过程中压缩文件数据
  • -P 显示传输过程中的进度

CMIIW

相关内容