Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

agnos.is Forums

  1. Home
  2. Linux
  3. How do you backup?

How do you backup?

Scheduled Pinned Locked Moved Linux
linux
61 Posts 50 Posters 370 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C [email protected]

    I use external drive for my important data and if my system is borked (which never happen to me) I just reinstall the OS

    F This user is from outside of this forum
    F This user is from outside of this forum
    [email protected]
    wrote on last edited by
    #52

    External drives are more prone to damage and failures, both because they're more likely to be dropped/bumped/spilled on etc, and because of generally cheaper construction compared to internal drives. In the case of SSDs the difference might be negligible, but I suggest you at least make a copy on another "cold" external drive if the data is actually important

    1 Reply Last reply
    0
    • Z [email protected]

      I recently implemented a backup workflow for me. I heavily use restic for desktop backup and for a full system backup of my local server.
      It works amazingly good. I always have a versioned backup without a lot of redundant data. It is fast, encrypted and compressed.

      But I wondered, how do you guys do your backups? What software do you use? How often do you do them and what workflow do you use for it?

      H This user is from outside of this forum
      H This user is from outside of this forum
      [email protected]
      wrote on last edited by
      #53

      I use Duplicacy to backup to my TrueNAS server. Crucial data like documents are backed up a second time to my GDrive, also using Duplicacy. Sadly it's a paid solution, but it works great for me.

      1 Reply Last reply
      0
      • Z [email protected]

        I recently implemented a backup workflow for me. I heavily use restic for desktop backup and for a full system backup of my local server.
        It works amazingly good. I always have a versioned backup without a lot of redundant data. It is fast, encrypted and compressed.

        But I wondered, how do you guys do your backups? What software do you use? How often do you do them and what workflow do you use for it?

        T This user is from outside of this forum
        T This user is from outside of this forum
        [email protected]
        wrote on last edited by
        #54

        Borg daily to the local drive then copied across to a USB drive, then weekly to cloud storage. Script is triggered by daily runs of topgrade before I do any updates

        1 Reply Last reply
        0
        • Z [email protected]

          I recently implemented a backup workflow for me. I heavily use restic for desktop backup and for a full system backup of my local server.
          It works amazingly good. I always have a versioned backup without a lot of redundant data. It is fast, encrypted and compressed.

          But I wondered, how do you guys do your backups? What software do you use? How often do you do them and what workflow do you use for it?

          B This user is from outside of this forum
          B This user is from outside of this forum
          [email protected]
          wrote on last edited by
          #55

          I created a script that I dropped into /etc/cron.hourly which does the following:

          1. Use rsync to mirror my root partition to a btrfs partition on another hard drive (which only updates modified files).
          2. Use btrfs subvolume snapshot to create a snapshot of that mirror (which only uses additional storage for modified files).
          3. Moves "old" snapshots into a trash directory so I can delete them later if I want to save space.

          It is as follows:

          #!/usr/bin/env python
          from datetime import datetime, timedelta
          import os
          import pathlib
          import shutil
          import subprocess
          import sys
          
          import portalocker
          
          DATETIME_FORMAT = '%Y-%m-%d-%H%M'
          BACKUP_DIRECTORY = pathlib.Path('/backups/internal')
          MIRROR_DIRECTORY = BACKUP_DIRECTORY / 'mirror'
          SNAPSHOT_DIRECTORY = BACKUP_DIRECTORY / 'snapshots'
          TRASH_DIRECTORY = BACKUP_DIRECTORY / 'trash'
          
          EXCLUDED = [
              '/backups',
              '/dev',
              '/media',
              '/lost+found',
              '/mnt',
              '/nix',
              '/proc',
              '/run',
              '/sys',
              '/tmp',
              '/var',
          
              '/home/*/.cache',
              '/home/*/.local/share/flatpak',
              '/home/*/.local/share/Trash',
              '/home/*/.steam',
              '/home/*/Downloads',
              '/home/*/Trash',
          ]
          
          OPTIONS = [
              '-avAXH',
              '--delete',
              '--delete-excluded',
              '--numeric-ids',
              '--relative',
              '--progress',
          ]
          
          def execute(command, *options):
              print('>', command, *options)
              subprocess.run((command,) + options).check_returncode()
          
          execute(
              '/usr/bin/mount',
              '-o', 'rw,remount',
              BACKUP_DIRECTORY,
          )
          
          try:
              with portalocker.Lock(os.path.join(BACKUP_DIRECTORY,'lock')):
                  execute(
                      '/usr/bin/rsync',
                      '/',
                      MIRROR_DIRECTORY,
                      *(
                          OPTIONS
                          +
                          [f'--exclude={excluded_path}' for excluded_path in EXCLUDED]
                      )
                  )
          
                  execute(
                      '/usr/bin/btrfs',
                      'subvolume',
                      'snapshot',
                      '-r',
                      MIRROR_DIRECTORY,
                      SNAPSHOT_DIRECTORY / datetime.now().strftime(DATETIME_FORMAT),
                  )
          
                  snapshot_datetimes = sorted(
                      (
                          datetime.strptime(filename, DATETIME_FORMAT)
                          for filename in os.listdir(SNAPSHOT_DIRECTORY)
                      ),
                  )
          
                  # Keep the last 24 hours of snapshot_datetimes
                  one_day_ago = datetime.now() - timedelta(days=1)
                  while snapshot_datetimes and snapshot_datetimes[-1] >= one_day_ago:
                      snapshot_datetimes.pop()
          
                  # Helper function for selecting all of the snapshot_datetimes for a given day/month
                  def prune_all_with(get_metric):
                      this = get_metric(snapshot_datetimes[-1])
                      snapshot_datetimes.pop()
                      while snapshot_datetimes and get_metric(snapshot_datetimes[-1]) == this:
                          snapshot = SNAPSHOT_DIRECTORY / snapshot_datetimes[-1].strftime(DATETIME_FORMAT)
                          snapshot_datetimes.pop()
                          execute('/usr/bin/btrfs', 'property', 'set', '-ts', snapshot, 'ro', 'false')
                          shutil.move(snapshot, TRASH_DIRECTORY)
          
                  # Keep daily snapshot_datetimes for the last month
                  last_daily_to_keep = datetime.now().date() - timedelta(days=30)
                  while snapshot_datetimes and snapshot_datetimes[-1].date() >= last_daily_to_keep:
                      prune_all_with(lambda x: x.date())
          
                  # Keep weekly snapshot_datetimes for the last three month
                  last_weekly_to_keep = datetime.now().date() - timedelta(days=90)
                  while snapshot_datetimes and snapshot_datetimes[-1].date() >= last_weekly_to_keep:
                      prune_all_with(lambda x: x.date().isocalendar().week)
          
                  # Keep monthly snapshot_datetimes forever
                  while snapshot_datetimes:
                      prune_all_with(lambda x: x.date().month)
          except portalocker.AlreadyLocked:
              sys.exit('Backup already in progress.')
          finally:
              execute(
                  '/usr/bin/mount',
                  '-o', 'ro,remount',
                  BACKUP_DIRECTORY,
              )
          
          1 Reply Last reply
          0
          • Z [email protected]

            I recently implemented a backup workflow for me. I heavily use restic for desktop backup and for a full system backup of my local server.
            It works amazingly good. I always have a versioned backup without a lot of redundant data. It is fast, encrypted and compressed.

            But I wondered, how do you guys do your backups? What software do you use? How often do you do them and what workflow do you use for it?

            H This user is from outside of this forum
            H This user is from outside of this forum
            [email protected]
            wrote on last edited by
            #56

            I use Pika Backup (GUI that uses Borg Backup on the backend) to back up my desktop to my home server daily, then overnight that server has a daily backup using Borg to a Hetzner Storage Box. It's easy to set it and forget it (other than maybe verifying the backups every once in a while), and having that off site back up gives me peace of mind.

            1 Reply Last reply
            0
            • tasankovasara@sopuli.xyzT [email protected]
              • daily important stuff (job stuff, Documents folder, Renoise mods) is kept synced between laptop, desktop and home server via Syncthing. A vimwiki additionally also on the phone. Sync happens only when on home network.

              • the rest of the laptop and desktop I'll roll into a tar backup every now and then with a quick bash alias. The tar files also get synced onto home server's big file system (2 TB ssd) via Syncthing.

              • clever thing is that the 2 TB ssd replaced an old 2 TB spinning disk. I kept the old disk and set up a systemd thing that keeps it spun down, but starts and mounts it once a week and rsyncs the changes to the ssd over, then unmounts it so that it sleeps again for a week. That old drive is likely to serve for years still with this frugal use.

              O This user is from outside of this forum
              O This user is from outside of this forum
              [email protected]
              wrote on last edited by
              #57

              How do you make sure the disk spins down? Is unmounting enough?

              tasankovasara@sopuli.xyzT 1 Reply Last reply
              0
              • savvywolf@pawb.socialS [email protected]

                I recently bought a storagebox from Hatzner and set up my server to run borgmatic every day to backup to it.

                I've also discovered that Pika Backup works really well as a "read only" graphical browser for borg repos.

                O This user is from outside of this forum
                O This user is from outside of this forum
                [email protected]
                wrote on last edited by
                #58

                Do you use some kind of encryption on the VPS?

                savvywolf@pawb.socialS 1 Reply Last reply
                0
                • O [email protected]

                  Do you use some kind of encryption on the VPS?

                  savvywolf@pawb.socialS This user is from outside of this forum
                  savvywolf@pawb.socialS This user is from outside of this forum
                  [email protected]
                  wrote on last edited by
                  #59

                  Yep, borgmatic encrypts it before it sends data to the server.

                  1 Reply Last reply
                  0
                  • O [email protected]

                    How do you make sure the disk spins down? Is unmounting enough?

                    tasankovasara@sopuli.xyzT This user is from outside of this forum
                    tasankovasara@sopuli.xyzT This user is from outside of this forum
                    [email protected]
                    wrote on last edited by
                    #60

                    Unmounting is enough if the disk has spindown configured. I've got this in /etc/udev/rules.d/ :
                    ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]", ENV{ID_SERIAL_SHORT}=="S2H7J9FZB02854", RUN+="/usr/bin/hdparm -S 70 /dev/%k"

                    1 Reply Last reply
                    0
                    • Z [email protected]

                      I recently implemented a backup workflow for me. I heavily use restic for desktop backup and for a full system backup of my local server.
                      It works amazingly good. I always have a versioned backup without a lot of redundant data. It is fast, encrypted and compressed.

                      But I wondered, how do you guys do your backups? What software do you use? How often do you do them and what workflow do you use for it?

                      cysioland@lemmygrad.mlC This user is from outside of this forum
                      cysioland@lemmygrad.mlC This user is from outside of this forum
                      [email protected]
                      wrote on last edited by
                      #61

                      Borg to a NAS, and that mirrored to Backblaze

                      1 Reply Last reply
                      0
                      • System shared this topic on
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups