{"id":965,"date":"2026-08-15T22:47:54","date_gmt":"2026-08-15T22:47:54","guid":{"rendered":"https:\/\/affordablevpsserver.com\/blog\/?p=965"},"modified":"2026-08-15T22:47:54","modified_gmt":"2026-08-15T22:47:54","slug":"budget-vps-backup-strategy-rsync-borg","status":"publish","type":"post","link":"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/","title":{"rendered":"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The most common VPS disaster is not a hack or a hardware failure \u2014 it is a one-line command run in the wrong directory, or a provider\u2019s storage array dying on a Saturday. On a budget server there is no SAN, no replication, and often no included backup product, which means the safety net is entirely up to you. The good news: a solid backup strategy for a small VPS costs nothing in software and a few dollars a month in storage. This guide covers rsync and Borg, how to get copies offsite, and \u2014 the step everyone skips \u2014 how to prove the backups actually restore.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Decide What You Are Protecting First<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Backup strategy starts with inventory, not tools. List what the server holds: application code (recoverable from git, probably not urgent), configuration files (small, critical, often forgotten), databases (the thing you actually cannot rebuild), and user uploads or state (medium size, hard to recreate). Assign each a recovery-time target \u2014 how fast you need it back \u2014 and a retention period. A sensible default for a small VPS: database dumps daily, configs daily, uploads daily, code weekly, with 14\u201330 days of history. Everything else is detail.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">rsync: Simple, Ubiquitous, Good Enough for Many Setups<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">rsync is the workhorse: it copies only the changed parts of files, works over SSH, and is installed on virtually every Linux box. A daily rsync of your data directory to a second location \u2014 another VPS, a cheap storage box, or a home NAS \u2014 gives you a current copy within minutes. The two things to get right: use <code>--delete<\/code> carefully (it mirrors deletions, so a ransomware-style wipe propagates to the backup), and never back up a live database by copying files \u2014 dump it first with <code>mysqldump<\/code> or <code>pg_dump<\/code> so the backup is a consistent snapshot. rsync\u2019s weakness is history: it keeps one state unless you script rotating snapshots (for example, <code>--link-dest<\/code> for incremental hardlink copies), so a corrupted file silently overwrites yesterday\u2019s good copy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Borg: Deduplicated, Encrypted, History-Preserving<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">BorgBackup fixes rsync\u2019s main gap. It stores deduplicated, compressed, optionally encrypted snapshots, so 30 days of daily backups of a 10 GB server typically consume a small fraction of 300 GB \u2014 only the changed chunks are stored each day. That makes realistic history affordable even on cheap storage. The workflow is simple: <code>borg init<\/code> once, then a cron job running <code>borg create<\/code> daily with a <code>--stats<\/code> flag and a prune policy (<code>borg prune --keep-daily 14 --keep-weekly 8<\/code>). Because Borg encrypts by default, the offsite copy is safe even if the storage provider is not.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Offsite Storage: The Second Copy Is the Point<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A backup on the same server is not a backup \u2014 it dies with the server. The offsite copy needs to be in a different failure domain: another provider\u2019s storage, an object-storage bucket (Backblaze B2, Wasabi, or a budget S3-compatible provider all work), or a machine you control elsewhere. For a small VPS the economics are trivial: a 20 GB repository with deduplication typically costs well under $1\u20132\/month on object storage, and rsync-over-SSH to a second cheap VPS costs whatever that VPS costs. Whatever you choose, automate it \u2014 a manual \u201cbackup day\u201d stops happening after the second month. Two rules: the offsite copy must be encrypted (Borg gives this free), and the restore path must not depend on the dead server.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Tool<\/th><th>Best for<\/th><th>History<\/th><th>Encryption<\/th><th>Effort<\/th><\/tr><\/thead><tbody><tr><td>rsync + SSH<\/td><td>Simple current-state copies, syncing to a second box<\/td><td>One state (unless you script snapshots)<\/td><td>Via SSH<\/td><td>Minutes to set up<\/td><\/tr><tr><td>BorgBackup<\/td><td>Deduplicated, encrypted, long history on cheap storage<\/td><td>Unlimited snapshots, prunable<\/td><td>Built-in<\/td><td>About an hour to set up<\/td><\/tr><tr><td>Database dump + object storage<\/td><td>Databases and small critical files<\/td><td>As many as you schedule<\/td><td>Add GPG or rely on the bucket<\/td><td>Minutes per service<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Restore Testing: The Step That Separates Backups from Wishful Thinking<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A backup that has never been restored is a theory. Test quarterly, and test the hard path: restore to a fresh VPS, not over the top of the broken one. Spin up the cheapest instance your provider offers (or a local VM), restore the Borg archive or rsync copy, point the database at the restored dump, and confirm the application boots. Time it \u2014 if the full restore takes six hours, you now know your real recovery time, and you can decide whether that is acceptable. Automate the test where possible: a cron job that restores the latest database dump into a throwaway instance and runs a health check catches corrupted archives while they are still cheap to fix.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Minimal Working Setup for a Small VPS<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Nightly: dump databases (<code>pg_dump<\/code>\/<code>mysqldump<\/code>) into a <code>\/backups\/db<\/code> directory.<\/li><li>Nightly: <code>borg create<\/code> an encrypted archive of <code>\/etc<\/code>, <code>\/var\/www<\/code>, and <code>\/backups\/db<\/code>; prune to 14 daily + 8 weekly.<\/li><li>Daily: push the Borg repository to object storage or a second VPS with <code>rclone<\/code> or rsync.<\/li><li>Alerting: a cron check that emails (or pings) you if the last archive is older than 36 hours.<\/li><li>Quarterly: full restore test to a fresh instance, timed and logged.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That is about two hours of setup, a few dollars a month, and the difference between a bad weekend and a lost server. For more on choosing a provider that makes offsite copies cheap, see the <a href=\"https:\/\/affordablevpsserver.com\/#providers\">budget VPS comparison<\/a> \u2014 and the <a href=\"https:\/\/affordablevpsserver.com\/#features\">features guide<\/a> covers which plans include storage options worth using.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Disclosure: if you buy through partner links on this site, we may earn a commission at no extra cost to you. <a href=\"https:\/\/www.vultr.com\/?ref=9805352-9J\" rel=\"noreferrer noopener sponsored\" target=\"_blank\">Spin up a second VPS for offsite backups<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The most common VPS disaster is not a hack or a hardware failure \u2014 it is a one-line command run in the wrong directory, or a provider\u2019s storage array dying on a Saturday. On a budget server there is no SAN, no replication, and often no included backup product, which means the safety net is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-965","post","type-post","status-publish","format-standard","hentry","category-budget-vps-guides"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget - Affordable VPS Server Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget\" \/>\n<meta property=\"og:description\" content=\"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget\" \/>\n<meta property=\"og:url\" content=\"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/\" \/>\n<meta property=\"og:site_name\" content=\"Affordable VPS Server Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-15T22:47:54+00:00\" \/>\n<meta name=\"author\" content=\"Affordable-Vps-Server-Author\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Affordable-Vps-Server-Author\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/\",\"url\":\"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/\",\"name\":\"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget - Affordable VPS Server Blog\",\"isPartOf\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#website\"},\"datePublished\":\"2026-08-15T22:47:54+00:00\",\"author\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7\"},\"breadcrumb\":{\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/affordablevpsserver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#website\",\"url\":\"https:\/\/affordablevpsserver.com\/blog\/\",\"name\":\"Affordable VPS Server Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/affordablevpsserver.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7\",\"name\":\"Affordable-Vps-Server-Author\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g\",\"caption\":\"Affordable-Vps-Server-Author\"},\"sameAs\":[\"https:\/\/affordablevpsserver.com\/blog\"],\"url\":\"https:\/\/affordablevpsserver.com\/blog\/author\/affordablevpsserver\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget - Affordable VPS Server Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/","og_locale":"en_US","og_type":"article","og_title":"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget","og_description":"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget","og_url":"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/","og_site_name":"Affordable VPS Server Blog","article_published_time":"2026-08-15T22:47:54+00:00","author":"Affordable-Vps-Server-Author","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Affordable-Vps-Server-Author","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/","url":"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/","name":"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget - Affordable VPS Server Blog","isPartOf":{"@id":"https:\/\/affordablevpsserver.com\/blog\/#website"},"datePublished":"2026-08-15T22:47:54+00:00","author":{"@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7"},"breadcrumb":{"@id":"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/affordablevpsserver.com\/blog\/budget-vps-backup-strategy-rsync-borg\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/affordablevpsserver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Backing Up a Small VPS: rsync, Borg, and Offsite Storage on a Budget"}]},{"@type":"WebSite","@id":"https:\/\/affordablevpsserver.com\/blog\/#website","url":"https:\/\/affordablevpsserver.com\/blog\/","name":"Affordable VPS Server Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/affordablevpsserver.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/685a02c93a3c45030f7427ec928b0df7","name":"Affordable-Vps-Server-Author","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/affordablevpsserver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8fa20973a7dd04621d396c26ba26b5c5e6c19595583335121958527393f6f95e?s=96&d=mm&r=g","caption":"Affordable-Vps-Server-Author"},"sameAs":["https:\/\/affordablevpsserver.com\/blog"],"url":"https:\/\/affordablevpsserver.com\/blog\/author\/affordablevpsserver\/"}]}},"_links":{"self":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/comments?post=965"}],"version-history":[{"count":1,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/965\/revisions"}],"predecessor-version":[{"id":967,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/posts\/965\/revisions\/967"}],"wp:attachment":[{"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/media?parent=965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/categories?post=965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affordablevpsserver.com\/blog\/wp-json\/wp\/v2\/tags?post=965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}