Skip to main content

Backups and howto

This Yunohost server is backed up onto two separate USB drives, both of which are on-premisepremises. Several attempts have been made to perform an off-premisepremises backup using both Borg and Restic, but I have found them to be more difficult than it’sthey’re worth!worth, so I am doing backups on-site using the built-in Yunohost backup and recovery service and Restic, both to their own USB drives.

Drive 1 (Drive label: YNHRECOVERY)

This backup uses the built-in Yunohost backup and recovery service. A simple cron job is used, detailing the time and what is to be backed up.

FULL BACK UPBACKUP

  • Time: Midnight every Wednesday and Sunday
  • What: EVERYTHING. (accept multimedia items like videos, photos and music) This is a full backup. Everything is checked off in the Yunohost backbackup service. There is a .nobackup file in the folder /home/yunohost.multimedia. This blank file prevents this folder from being backed up.

OTHER ITEMS BACKED UP

  • Time: 4 AM EVERY day.
  • What: User home folders and emailsemails.

Drive 2 (Drive label: DATARECOVERY)

This drive uses the Restic backup/recovery application, which is a third-party application. Again, a cron job is used to determine the times and what items are to be backed up, which are:

    Time: 3 AM EVERY day
    What: The following folders are incrementally backed up:
      /etc
      /home /var/www
      /opt
      /var/lib/mysql
      /usr/share/yunohost

      The difference between the two backups is that the Restic backup is incremental, and the last three backups are kept. The Yunohost backup is not incremental; therefore, some administration must be done to prune the drive as it becomes full.

      HOW TO USE THE RESTIC BACKUP SERVICE (BASICS)

      Restic is a backup service that can be installed from the CLI or through the Yunohost application catalogue. On this server, it has been installed using the CLI.

      The backup used to be a cron job, but recently the excellent Restic GUI, Backrest, has been installed and is now in use. Using this app, you can create Restic repos, view and download the contents of a repo, set the times of the backup and set retention.

      Below I have kept some useful Restic commands, just in case...! Well, you never know...

      Where is the Restic app located? Type: which restic will show you where the app is located on your drive.

      Where is my Restic repository located? The Restic repository can be found at media/datarecovery/restic. This is a symbolic link from the Restic directory on the main drive. The physical drive is a USB spinner labelled “datarecovery”. 

      What is the latest installed Restic version?
      Type: restic version. This will tell you the current version, which right now is restic 0.19.1

      Can I update Restic? Type: restic self-update. If there is an update available, it will be downloaded and installed.

      Has the backup happened? Type: restic check -r /media/datarecovery/restic

      How do I change the backup schedule? Type: crontab -u root -e Nano will open, and you can edit the time and contents of your backup.

      Can I see the snapshots? Type: restic -r /media/datarecovery/restic snapshots

      Can I see the contents of the snapshots? Type: restic ls (snapshotID here) --repo /media/datarecovery/restic

      Can I mount the snapshot? Type: restic -r /media/datarecovery/restic mount /mnt/restic

      NOTE: For most of the above commands, you will require the restic password that you set up when you created your repository, etc.