Skip to content

Instantly share code, notes, and snippets.

@erikson1970
Forked from amalmurali47/backup_digitalocean.md
Last active April 1, 2023 14:56
Show Gist options
  • Save erikson1970/e03b02cd45b685da56f5a31408a0ad3f to your computer and use it in GitHub Desktop.
Save erikson1970/e03b02cd45b685da56f5a31408a0ad3f to your computer and use it in GitHub Desktop.
Backup DigitalOcean droplet locally

DigitalOcean does not provide a way to download a snapshot of your droplet locally. You can use rsync to accomplish this instead.

On your local machine, assuming you have added your-server in your SSH config:

rsync -aAXHv --append-verify --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} your-server:/
  • -a : archive mode (all files, with permissions, etc.)
  • -A : preserve ACLs/permissions (not included with -a)
  • -X : preserve extended attributes (not included with -a)
  • -H : preserve hard links (not included with -a)
  • -v : verbose, mention files
  • --append-verify: if the files differ in modification or other timestamps, it will overwrite the target with the source without scrutinizing those files further

also:

On macos I had to slightly modify the command (note the ./ in the end that specifies dst folder):

rsync --recursive --ignore-existing --progress --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} root@ip:/ ./
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment