I’m having trouble automating the restic backup using systemd.
I followed the linked guide, which seems pretty straightforward. Backup works fine when I run it manually, but when I try to run systemctl status restic-backup.service
I get the following error: Fatal: parsing repository location failed: s3: bucket name not found
I have triple-checked the file paths, and also added PassEnvironment=AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY RESTIC_REPOSITORY RESTIC_PASSWORD_FILE B2_ACCOUNT_ID B2_ACCOUNT_KEY
to the restic-backup.service file, which I saw used elsewhere. This is my first time using systemd, so I’m not sure if I am overlooking an obvious step or what.
OS: Xubuntu
restic: installed locally following these steps
backup: Backblaze B2 bucket with s3
Have you tried setting up rclone for cloud access and then using restic with -r “rclone:my_aws:path/to/backup”?
What would be the benefit?
Are you using B2 or S3? Setting both might be causing it to get confused. The bucket name needs to be appended to the end of the S3 or B2 URL like “s3:b2.backblaze.com/<bucket_name>” inside the RESTIC_REPOSITORY variable
My recommendation is to put all of the variables in an environment file, and use systemd’s
EnvironmentFile
(in[
to point to it. ]One of my backup service files (I back up to disks and cloud) looks like this:
[Unit] Description=Backup to MyUsbDrive Requires=media-MyUsbDrive.mount After=media-MyUsbDrive.mount [Service] EnvironmentFile=/etc/backup/environment Type=simple ExecStart=/usr/bin/restic backup --tag=prefailure-2 --files-from ${FILES} --exclude-file ${EXCLUDES} --one-file-system [Install] WantedBy=multi-user.timer
FILES
is a file containing files and directories to be backed up, and is defined in the environment file; so isEXCLUDES
, but you could simply point restic at the directory you want to back up instead.My environment file looks essentially like
RESTIC_REPOSITORY=/mnt/MyUsbDrive/backup RESTIC_PASSWORD=blahblahblah KEEP_DAILY=7 KEEP_MONTHLY=3 KEEP_YEARLY=2 EXCLUDES=/etc/backup/excludes FILES=/etc/backup/files
If you’re having trouble, start by looking at how you’re passing in the password, and whether it’s quoted properly. It’s been a couple of years since I had this issue, but at one point I know I had spaces in a passphrase and had quoted the variable, and the quotes were getting passed in verbatim.
My VPS backups are more complex and get their passwords from a keystore, but for my desktop I keep it simple.
Seconding this answer. The error message and description scream envvar issue.
This is my first time using systemd, so I’m not sure if I am overlooking an obvious step or what.
@gedaliyah@lemmy.world Did you run a
systemctl daemon-reload
after making the PassEnvironment change to your service file?
I used this. If you get stuck, try it out. Or check the code for ideas.
https://fedoramagazine.org/automate-backups-with-restic-and-systemd
That’s the guide I followed to automate my backups.
Don’t do that. Use resticprofile.
deleted by creator