<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Schedules :: resticprofile</title><link>https://421-merge.resticprofile.pages.dev/schedules/index.html</link><description>resticprofile is capable of managing scheduled backups for you. Under the hood it’s using:
launchd on macOS X Task Scheduler on Windows systemd where available (Linux and other BSDs) crond as fallback (depends on the availability of a crontab binary) crontab files (low level, with (*) or without (-) user column) On unixes (except macOS) resticprofile is using systemd if available and falls back to crond. On any OS a crond compatible scheduler can be used instead if configured in global / scheduler:</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Mon, 16 May 2022 20:13:32 +0100</lastBuildDate><atom:link href="https://421-merge.resticprofile.pages.dev/schedules/index.xml" rel="self" type="application/rss+xml"/><item><title>Schedule Configuration</title><link>https://421-merge.resticprofile.pages.dev/schedules/configuration/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://421-merge.resticprofile.pages.dev/schedules/configuration/index.html</guid><description>The schedule configuration consists of a few parameters which can be added on each profile:
​ toml yaml hcl json [profile.backup] schedule = "*:00,30" schedule-permission = "system" schedule-priority = "background" schedule-log = "profile-backup.log" schedule-lock-mode = "default" schedule-lock-wait = "15m30s" profile: backup: schedule: '*:00,30' schedule-permission: system schedule-priority: background schedule-log: profile-backup.log schedule-lock-mode: default schedule-lock-wait: 15m30s "profile" "backup" { "schedule" = "*:00,30" "schedule-permission" = "system" "schedule-priority" = "background" "schedule-log" = "profile-backup.log" "schedule-lock-mode" = "default" "schedule-lock-wait" = "15m30s" } { "profile": { "backup": { "schedule": "*:00,30", "schedule-permission": "system", "schedule-priority": "background", "schedule-log": "profile-backup.log", "schedule-lock-mode": "default", "schedule-lock-wait": "15m30s" } } } schedule-permission schedule-permission accepts three parameters: system, user or user_logged_on:</description></item><item><title>Schedule Commands</title><link>https://421-merge.resticprofile.pages.dev/schedules/commands/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://421-merge.resticprofile.pages.dev/schedules/commands/index.html</guid><description>resticprofile accepts these internal commands:
schedule unschedule status These resticprofile commands either operate on the profile selected by --name, on the profiles selected by a group (before v0.29.0), on groups (from v0.29.0), or on all profiles when the flag --all is passed on the command line.
Warning Before version 0.29.0, the --name flag on a group was used to select all profiles in the group for scheduling them. It was similar to running the schedule commands on each profile individually.</description></item><item><title>Schedule Examples</title><link>https://421-merge.resticprofile.pages.dev/schedules/examples/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://421-merge.resticprofile.pages.dev/schedules/examples/index.html</guid><description>Examples of scheduling commands under Windows Note If you create a task with user permission under Windows, you will need to enter your password to validate the task.
It’s a requirement of the task scheduler. I’m inviting you to review the code to make sure I’m not emailing your password to myself. Seriously you shouldn’t trust anyone.
Example of the schedule command under Windows (with git bash):</description></item><item><title>Systemd</title><link>https://421-merge.resticprofile.pages.dev/schedules/systemd/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://421-merge.resticprofile.pages.dev/schedules/systemd/index.html</guid><description>systemd is a common service manager in use by many Linux distributions. resticprofile has the ability to create systemd timer and service files. systemd can be used in place of cron to schedule backups.
User systemd units are created under the user’s systemd profile (~/.config/systemd/user).
System units are created in /etc/systemd/system
systemd calendars resticprofile uses systemd OnCalendar format to schedule events.
Testing systemd calendars can be done with the systemd-analyze application. systemd-analyze will display when the next trigger will happen:</description></item><item><title>Launchd</title><link>https://421-merge.resticprofile.pages.dev/schedules/launchd/index.html</link><pubDate>Mon, 16 May 2022 20:13:32 +0100</pubDate><guid>https://421-merge.resticprofile.pages.dev/schedules/launchd/index.html</guid><description>launchd is the service manager on macOS. resticprofile can schedule a profile via a user agent or a daemon in launchd.
User agent A user agent is generated when you set schedule-permission to user.
It consists of a plist file in the folder ~/Library/LaunchAgents:
A user agent mostly runs with the privileges of the user. But if you backup some specific files, like your contacts or your calendar for example, you will need to give more permissions to resticprofile and restic.</description></item><item><title>User schedule in container</title><link>https://421-merge.resticprofile.pages.dev/schedules/non-root-schedule-in-container/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://421-merge.resticprofile.pages.dev/schedules/non-root-schedule-in-container/index.html</guid><description>You can schedule your backups with resticprofile by running crond inside a container.
This configuration uses supercronic to run scheduled backups as a non-root user.
You can create a container with this modified version from the official image:
FROM alpine:latest LABEL org.opencontainers.image.documentation="https://creativeprojects.github.io/resticprofile/" LABEL org.opencontainers.image.source="https://github.com/creativeprojects/resticprofile" ARG ARCH=amd64 ENV TZ=Etc/UTC COPY build/restic-${ARCH} /usr/bin/restic COPY build/rclone-${ARCH} /usr/bin/rclone COPY resticprofile /usr/bin/resticprofile RUN apk add --no-cache openssh-client-default curl tzdata ca-certificates supercronic &amp;&amp; \ chmod +x /usr/bin/restic /usr/bin/rclone /usr/bin/resticprofile &amp;&amp; \ adduser -D -h /resticprofile resticprofile &amp;&amp; \ mkdir -p /resticprofile &amp;&amp; \ touch /resticprofile/crontab &amp;&amp; \ chown -R resticprofile:resticprofile /resticprofile VOLUME /resticprofile WORKDIR /resticprofile ENTRYPOINT ["resticprofile"] CMD ["--help"] Here’s a docker-compose example loading configuration from a .env file:</description></item></channel></rss>