<?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://505-merge.resticprofile.pages.dev/schedules/index.html</link><description>Scheduler resticprofile manages scheduled backups using:
launchd on macOS Task Scheduler on Windows systemd on Linux and other BSDs crond as a fallback (requires crontab binary) crontab files (with or without a user column) On Unix systems (excluding macOS), resticprofile uses systemd if available, otherwise it falls back to crond.
See reference / global section for scheduler configuration options.
Each profile can be scheduled independently. Within each profile, these sections can be scheduled:</description><generator>Hugo</generator><language>en-gb</language><atom:link href="https://505-merge.resticprofile.pages.dev/schedules/index.xml" rel="self" type="application/rss+xml"/><item><title>Schedule Configuration</title><link>https://505-merge.resticprofile.pages.dev/schedules/configuration/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://505-merge.resticprofile.pages.dev/schedules/configuration/index.html</guid><description>The schedule configuration includes several parameters that can be added to 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://505-merge.resticprofile.pages.dev/schedules/commands/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://505-merge.resticprofile.pages.dev/schedules/commands/index.html</guid><description>resticprofile accepts these commands:
schedule unschedule status These commands operate on the profile or group selected by --name, or on all profiles when --all is passed.
Warning Before version 0.29.0, the --name flag on a group selected all profiles in the group for scheduling, similar to running the schedule command on each profile individually.
Version 0.29.0 introduced group scheduling: The group schedule works at the group level and runs all profiles one by one when triggered.</description></item><item><title>Schedule Examples</title><link>https://505-merge.resticprofile.pages.dev/schedules/examples/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://505-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://505-merge.resticprofile.pages.dev/schedules/systemd/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://505-merge.resticprofile.pages.dev/schedules/systemd/index.html</guid><description>systemd is a common service manager used by many Linux distributions. resticprofile can create systemd timer and service files.
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 the systemd OnCalendar format to schedule events.
Test systemd calendars with systemd-analyze. It will display the next trigger time:
systemd-analyze calendar 'daily' Original form: daily Normalized form: *-*-* 00:00:00 Next elapse: Sat 2020-04-18 00:00:00 CDT (in UTC): Sat 2020-04-18 05:00:00 UTC From now: 10h left First time schedule When you schedule a profile with the schedule command, resticprofile will:</description></item><item><title>Launchd on macOS</title><link>https://505-merge.resticprofile.pages.dev/schedules/launchd/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://505-merge.resticprofile.pages.dev/schedules/launchd/index.html</guid><description>launchd is the service manager on macOS. resticprofile can schedule a profile using the launchctl tool.
User permission A user agent is generated when you set schedule-permission to user or user_logged_on. It consists of a plist file in ~/Library/LaunchAgents.
If you include specific files in your backup (like contacts or calendar) or if you’re connecting to an external restic repository, you may need to grant more permissions to resticprofile and restic (a popup window will ask for permission).</description></item><item><title>Windows Task Scheduler</title><link>https://505-merge.resticprofile.pages.dev/schedules/task_scheduler/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://505-merge.resticprofile.pages.dev/schedules/task_scheduler/index.html</guid><description>Minimum version supported Windows 10 is the minimum version supported for scheduling.
Elevated mode If your schedule profile has the permission set to system, resticprofile needs to run in elevated mode to set up the schedules.
Generally, you don’t need to worry about this: resticprofile will restart itself in elevated mode. You’ll see a popup window asking for elevated privileges.
resticprofile is blocked from restarting in elevated mode</description></item><item><title>Cron &amp; compatible</title><link>https://505-merge.resticprofile.pages.dev/schedules/cron/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://505-merge.resticprofile.pages.dev/schedules/cron/index.html</guid><description>On non-Windows OS, use a crond-compatible scheduler if specified in global/scheduler:
Windows No Longer Supported Crond support on Windows has been removed due to significant issues in previous versions.
​ toml yaml hcl json [global] scheduler = "crond" --- global: scheduler: crond "global" = { "scheduler" = "crond" } { "global": { "scheduler": "crond" } } This configuration uses the default crontab tool shipped with crond.</description></item><item><title>User schedule in container</title><link>https://505-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://505-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>