<?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://408-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://408-merge.resticprofile.pages.dev/schedules/index.xml" rel="self" type="application/rss+xml"/><item><title>Schedule Configuration</title><link>https://408-merge.resticprofile.pages.dev/schedules/configuration/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://408-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://408-merge.resticprofile.pages.dev/schedules/commands/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://408-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, or on all profiles when the flag --all is passed on the command line.
Examples:
resticprofile --name profile schedule resticprofile --name group schedule resticprofile schedule --all Please note, schedules are always independent of each other no matter whether they have been created with --all, by group or from a single profile.</description></item><item><title>Schedule Examples</title><link>https://408-merge.resticprofile.pages.dev/schedules/examples/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://408-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://408-merge.resticprofile.pages.dev/schedules/systemd/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://408-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://408-merge.resticprofile.pages.dev/schedules/launchd/index.html</link><pubDate>Mon, 16 May 2022 20:13:32 +0100</pubDate><guid>https://408-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://408-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://408-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>