I'm using the static site generator Nanoc, with rsync locally and on the (ancient Ubuntu) server so I can deploy from the command line.
It's been awhile since I last used rsync for this site but I'm now getting:
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)
Locally I was running rsync 2.6.9 (when the error occurred) so upgraded rsync to 3.1.3_1 (OS X/Homebrew). The server runs rsync 3.0.3.
Is that 3072 error code from rsync? If so, what does it mean?
Update Feb 2020
After even more rsync issues deploying this Nanoc site I've moved to setting up GIT for
- copy the SSH key from the server
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
- create a bare GIT repo on the server (outside the site root)
- set up
deployin "nanoc.yaml" (as below)
- exclude "output/" from the nanoc site repo in local ".gitignore"
git initinside the "output" and…
git remote set-url server ssh://USER@IP:PORT/PATH_TO_BARE_REPO.git
- create a ".git/hooks/post-receive" file inside the bare repo (as below)
- make it executable with
chmod +x post-receive
deploy: default: kind: git remote: ssh://USER@IP:PORT/PATH_TO_BARE_REPO.git branch: master forced: true
(to only overwrite changed files, I might try using without "forced", but it's pretty quick for what is a large site anyway)
On the server in "SITE_REPO.git/hooks/post-receive":
#!/bin/sh git --work-tree=/PATH_TO_SITE_ROOT --git-dir=PATH_TO_BARE_REPO.git checkout -f
And it works fine. So in this case, I think GIT is a better option here. I also created a global
git pushall alias on my local system to push to the server and the live site with one command.