Timeshift isn't autostarting or making scheduled snapshots

I put Timeshift in the Autostart section under Settings and set it up to make snapshots several times a week and it is doing neither. It doesn’t do its scheduled tasks even when I manually start it and have the computer running straight for days. I always have to manually make snapshots.

What can I do about this?

Is your cron enabled?

systemctl enable --now crond

Apparently not. When I tried I got:
Failed to enable unit: Unit crond.service does not exist

Activate Crontab:

=> sudo pacman -S cronie (if not yet installed)

=> sudo systemctl enable cronie.service

=> sudo systemctl start cronie.service

=> systemctl status cronie.service (status check)

I did everything you listed and then restarted and timeshift still failed to launch

What schedule have you set within timeshift?

It doesn’t launch and run backups visibly so you will never see any kind of interface open automatically like you seem to be expecting, it runs them in the background at defined intervals - unless you open the menu to see if there are backups there, you won’t actually see it doing anything. It doesn’t need to be in any kind of auto start configuration, only the cron service needs to be started as outlined above by @Darius

Run sudo timeshift --check

And it will show you if any backups have been created, and if one is scheduled but has not been created yet then it will visibly run one in the terminal.

Edit:

This is my output sudo timeshift --check

Mounted '/dev/sdb1' at '/run/timeshift/100906/backup'
Boot snapshots are enabled
Last boot snapshot not found
Tagged snapshot '2024-09-17_22-55-29': boot
Hourly snapshots are enabled
Last hourly snapshot not found
------------------------------------------------------------------------------
Creating new snapshot...(RSYNC)
Saving to device: /dev/sdb1, mounted at path: /run/timeshift/100906/backup
Linking from snapshot: 2024-09-17_22-55-29
Syncing files with rsync...
                                                                 Created control file: /run/timeshift/100906/backup/timeshift/snapshots/2024-09-18_15-43-03/info.json
RSYNC Snapshot saved successfully (83s)
Tagged snapshot '2024-09-18_15-43-03': hourly
Daily snapshots are enabled
Last daily snapshot not found
Tagged snapshot '2024-09-18_15-43-03': daily

As soon as I ran that command all of a sudden it did its scheduled hourly and daily snapshot. I scheduled it to run those months ago. I attached a screenshot below. As you can see, nearly every snapshot has an ‘O’ tag, for ‘On demand,’ since I had to manually run them. How can I get Timeshift to run scheduled tasks without having to type sudo timeshift --check into the terminal?

Show the output of systemctl status cronie

● cronie.service - Command Scheduler
     Loaded: loaded (/usr/lib/systemd/system/cronie.service; enabled; pr>
     Active: active (running) since Thu 2024-09-19 07:52:28 PDT; 6h left
 Invocation: cd524bd781d94ec8ba2c2211b5cd5a05
   Main PID: 4419 (crond)
      Tasks: 4 (limit: 18889)
     Memory: 1.9M (peak: 2.3M)
        CPU: 15ms
     CGroup: /system.slice/cronie.service
             ├─4419 /usr/sbin/crond -n
             ├─4422 /usr/sbin/CROND -n
             ├─4423 /bin/bash -c "sleep 10m && timeshift --create --scri>
             └─4424 sleep 10m

Sep 19 07:52:28 frog systemd[1]: Started Command Scheduler.
Sep 19 07:52:28 frog crond[4419]: (CRON) STARTUP (1.7.2)
Sep 19 07:52:28 frog crond[4419]: (CRON) INFO (Syslog will be used inste>
Sep 19 07:52:28 frog crond[4419]: (CRON) INFO (RANDOM_DELAY will be scal>
Sep 19 07:52:28 frog crond[4419]: (CRON) INFO (running with inotify supp>
Sep 19 07:52:28 frog CROND[4423]: (root) CMD (sleep 10m && timeshift --c>

I figured out a way to make it work for anyone else who may need it:

Step 1: Create the timeshift.timer File

  1. Open a terminal and create a new file for the timer:

sudo nano /etc/systemd/system/timeshift.timer

  1. Paste the following content into the file:

[Unit]
Description=Timeshift - systemd snapshot timer

[Timer]
OnCalendar=hourly
Persistent=true

[Install]
WantedBy=timers.target

This will run the timer every hour. You can adjust the OnCalendar value if you’d like a different schedule (e.g., daily or weekly).

  1. Save and exit.

Step 2: Create the timeshift.service File

  1. Now, create a service file to run Timeshift automatically:

sudo nano /etc/systemd/system/timeshift.service

  1. Paste the following content into the file:

[Unit]
Description=Timeshift - systemd snapshot service
Wants=timeshift.timer

[Service]
Type=oneshot
ExecStart=/usr/bin/timeshift --check --scripted

[Install]
WantedBy=multi-user.target

  1. Save and exit.

Step 3: Enable and Start the Timer

  1. Reload systemd to recognize the new service and timer files:

sudo systemctl daemon-reload

  1. Enable and start the timer:

sudo systemctl enable --now timeshift.timer

  1. Verify that the timer is active:

systemctl status timeshift.timer

I don’t know if it’s the best way, but it works and I made sure to test that it works after rebooting it and it does.

1 Like

I ended up finding something that worked:

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.