rsync 状态代码 3072 是什么意思?

rsync 状态代码 3072 是什么意思?

我正在使用静态站点生成器 Nanoc,并在本地和(古老的 Ubuntu)服务器上使用 rsync,以便我可以从命令行进行部署。

距离我上次使用 rsync 来同步该站点已经有一段时间了,但现在我得到了:

Nanoc::Extra::Piper::Error: command exited with a nonzero status code 3072 (command: rsync --group --links --perms --partial --progress --recursive --times --verbose --compress --exclude=".hg" --exclude=".svn" --exclude=".git" output/ uname@IP_ADDRESS:/home/path_to_remote_dir)

我在本地运行 rsync 2.6.9(发生错误时),因此将 rsync 升级到 3.1.3_1(OS X/Homebrew)。服务器运行 rsync 3.0.3。

这是来自 rsync 的 3072 错误代码吗?如果是,它意味着什么?


2020 年 2 月更新

在部署此软件时出现更多 rsync 问题后纳米碳我已经转向为以下站点设置 GIT nanoc deploy

  • 从服务器复制 SSH 密钥ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
  • 在服务器上创建一个裸 GIT 仓库(在站点根目录之外)
  • 在“nanoc.yaml”中设置deploy(如下所示)
  • 从本地“.gitignore”中的 nanoc 站点存储库中排除“output/”
  • git init 里面“输出”和…
  • git remote set-url server ssh://USER@IP:PORT/PATH_TO_BARE_REPO.git
  • 在裸仓库中创建一个“.git/hooks/post-receive”文件(如下所示)
  • 使其可执行chmod +x post-receive

在“nanoc.yaml”中:

deploy:
  default:
    kind: git
    remote: ssh://USER@IP:PORT/PATH_TO_BARE_REPO.git
    branch: master
    forced: true

(为了仅覆盖已更改的文件,我可能会尝试使用不带“强制”的功能,但对于大型网站来说,这很快)

在服务器上的“SITE_REPO.git/hooks/post-receive”中:

#!/bin/sh
git --work-tree=/PATH_TO_SITE_ROOT --git-dir=PATH_TO_BARE_REPO.git checkout -f

而且它运行良好。所以在这种情况下,我认为 GIT 是更好的选择。我还在git pushall本地系统上创建了一个全局别名,以便使用一个命令推送到服务器和实时站点。

答案1

我发现一年前有人报告过此同步工具错误 3072,并且日志除了未经授权的登录失败外什么都没有显示。检查密码更改。

相关内容