Thanks to Michael Grosser for his support and patches!
ssh user@rsync.net s3cmd get s3://rsynctest/mscdex.exe
... and have for some time ... but we'd be happy to have some diversity there. One thing that sticks out immediately, of course, is that s3cmd is written in python and s3sync is a ruby gem. This makes things difficult since we insist on having no interpreters in our customer chroot...[1][1] We "freeze" things like s3cmd and rdiff-backup into binary executables so they don't require python in the environment
Although s3cmd is older and has more features, s3sync was designed to grow stable and well tested. I'm definitely planning to write benchmarks to s3sync and improve its performance as much as I can.
https://github.com/newspaperclub/hank
I found the existing s3 syncing tools used lots of memory when dealing with many small files, so I wrote this in Go, trying to carefully manage memory usage by concurrently listing and downloading the files.
We use it for backing up 500GB across 800k files, from an S3 bucket to a ZFS filesystem for snapshotting. It does the job well, usually taking just a few minutes when there are minimal changes.
Wish I had the time, I just realized it would be a fun project to learn Go with.
http://docs.aws.amazon.com/cli/latest/reference/s3/index.htm...
In the end of the day, I had an unreadable file inside of the directory that I was trying to back up. I found that out using `--debug` option of the official client, but I couldn't actually continue copying the files cause of that error.
When I tried with s3sync, as I expected, it just yielded a warning about the single file I had with problems and kept working until my backup was done!
Sorry for the wall of text, I just think it's funny cause this exact question came to my mind a couple days ago and that's how I answered my self! :)
s3cmd: * might be considered more robust and battle tested as people already commented here; * is written in python, so if you have a python environment running, you might be more comfortable with it;
s3sync * Smaller codebase, might be easier to keep things simpler and well tested, achieving the same stability with less time/effort; * Error reporting. One of my main reasons to keep working on s3sync was its better error reporting. I just go crazy when something wrong happens and I don't know why. * It's in ruby, if you have a ruby environment and you don't want to add any python dependencies, you might choose it