Skip to main content

Backups and howto

This yunohost server is backed up onto two separate USB drives both of which are on-premise. Several attempts have been made to perform an off-premise backup using both Borg and Restic, but found to be more difficult than it’s worth!

Drive 1 (Drive label: YNHRECOVERY)

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

FULL BACK UP

  • Time: Midnight every Wednesday and Sunday
  • What: EVERYTHING. This is a full backup. Everything is checked off in the Yunohost back service.

OTHER

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

Drive 2 (Drive label: DATARECOVERY)

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

  • 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.

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

Where is my Restic repository?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 versionversion, which right now is restic 0.17.3 compiled with go1.22.5 on linux/amd64

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

Has the back upbackup 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.