# Overview Bash wrapper for restic backups. # Requirements - https://restic.net/ # Usage ``` root@gridbug:bare# ./bare.sh -h usage: ./bare.sh command reponame -a Run on all repos defined as 'auto' -d dir Restore mode: specify where to put restored files (default: /mnt/restore) -h Show this usage text -s num Limit speed to 'num' Mbps (default: unlimited) -x num Use 'num' simultaneous connections (default: 20) -c Cron mode - log to /var/log/backup.log -t Test mode - dump what would be done then exit. -T Telegram fornatting mode Valid commands are: go ls init repos stats diff forget get check /root/.backup/config should look like this: export B2_ACCOUNT_ID=xxx # Backblaze B2 credentials export B2_ACCOUNT_KEY=xxx # Backblaze B2 credentials export B2_APP_ID=xxx # Backblaze B2 bucket details export B2_APP_KEY=xxx # Backblaze B2 bucket auth export B2_BUCKET_PREFIX=xxx # Prefix to append to create unique B2 bucket name export RESTIC_KEEPDAYS=31 # Days to keep restic backups for export RESTICOPTS="--one-file-system" # Extra args to pass to restic export PGUSER=postgres # Postgresql username export DEF_RSYNC_SERVER=xxx # Server used for repos with 'rsync' tag export DEF_RSYNC_USER=backups # Username for rsync server export DEF_RSYNC_DIR=/home/backups/backups # Remote directory on rsync server export RSYNC_OPTIONS=-Pavz # Options to pass to rsync export USMB_PREFIX=/DataVolume/shares # Strip this from repo path to get USMB share name export DEF_NFS_SERVER=nfs.yourdomain.com # NFS server where local files for 'nfs' repos are found export DEF_NFS_SERVER_BASE=/remote/nfs/share/base # Path on local NFS server to prefix to repo names export NFS_PREFIX=/local/nfs/mountpoint # Where to mount NFS exports locally before backing them up /root/.backup/repos should look like this: reponame1;/path/to/files1/;tag1,tag2,...,tagX;repo_url;repo_passfile;repo_excludefile reponame2;/path/to/files2/;tag1,tag2,...,tagX;repo_url;repo_passfile;repo_excludefile ... reponameX;/path/to/filesX/;tag1,tag2,...,tagX;repo_url;repo_passfile;repo_excludefile Default password file is: /root/.backup/auth Backup method tags: restic Backup using restic (default repo is Backblaze B2 bucket $B2_BUCKET_PREFIX-) rclone Backup using rclone (default repo is Backblaze B2 bucket $B2_BUCKET_PREFIX-) rsync Backup using rsync (default repo is $DEF_RSYNC_USER@$DEF_RSYNC_SERVER:$DEF_RSYNC_DIR/) postgres Dump all postgres databases. Instead of local file path, specify database name to backup. If empty, all dbs are backed up. Pre-backup commands to access local files: nfs Mount $DEF_NFS_SERVER:$DEF_NFS_SERVER_BASE/ to before running. Sharename determined by stripping $NFS_PREFIX from start of repo path. usmb Run 'usmb reponame' to mount $USMB_PREFIX/ before running. Sharename determined by stripping $NFS_PREFIX from start of . localmount Run 'mount reponame' to mount before running. Pre-backup commands to access repo: premount=x Run 'mount ' before command and 'umount x' afterwards. ```