update: safety first!

when it comes to important files: safety comes first

thus recommend to the user that wants to go pro the following backup system:

  • have two complete backups at two different places:
    • backupA: at the company, USB 3.0 (! THE MORE DATA IS BACKED UP THE MORE SPEED IS NEEDED (or restore might take DAYS!)) connected to the server, doing daily incremental backups
    • backupB: being a fire-proof double-metal casing (EMP proof) vault at a different place (home?)
  • change those backups every day if possible otherwise every week
    • if ransomeware destroys backupA then in the worst case scenario, one day or one week of work is gone
    • remember: whatever is physically connected to the server, can be encrypted by ransomeware
  • have the backup strategy tested once a year
    • where the backup is restored completely on a backup-server, to test if all data is there and how long the process takes (USB 2.0 is definitely a massive bottleneck)

rsync is a cool beast with a billion options it allows you to ssh-secured transfer your backups to remote locations…


  • does chunk-wise md5 integrity check on files if files differ only slightly it will “delta-transfer” only the diff not retransfer the whole file…


  • complicated: the amount of options and combinations of options can be overwhelming.

you can even specify the bandwidth to be used:

rsync -vv --bwlimit=65 -r --archive --partial --append-verify --inplace --progress --compress -e 'ssh -p22' /BACKUP/DAILY/ USER@SERVER:/BACKUP/DAILY/

src: https://unix.stackexchange.com/questions/48298/can-rsync-resume-after-being-interrupted


option because it’s CPU intense



limits the amount of upload-bandwidth used (just in case you need internet at the same time)

example script called: onlineBackup.sh

that could be called by cron every hour:

ps cax | grep -v rsyncd | grep -v grep | grep rsync > /dev/null
if [ $? -eq 0 ]; then
  echo "Process is running."
  echo "Process is not running."
  # backup more important first
  rsync -vv --bwlimit=65 -r --archive --partial --append-verify --inplace --progress --compress -e 'ssh -p22' /BACKUP/DAILY/ USER@SERVER:/BACKUP/DAILY/

liked this article?

  • only together we can create a truly free world
  • plz support dwaves to keep it up & running!
  • (yes the info on the internet is (mostly) free but beer is still not free (still have to work on that))
  • really really hate advertisement
  • contribute: whenever a solution was found, blog about it for others to find!
  • talk about, recommend & link to this blog and articles
  • thanks to all who contribute!