Execute Task periodically
Cron, however, fails if your system happens to not be running when the appropriate execution time occurs.
Anacron insures that the task will be executed when your system is again active. However, the anacron frequency of execution can be no less than daily.Systemd timers offer the best of both cron and anacron. - Systemd Timers for Scheduling Tasks / systemd/Timers
The modern option is to use a systemd timer unit. This requires creating a systemd unit which defines the job you want to periodically run, and a systemd.timer unit defining the schedule for the job. - SO
Running job as regular user
Create timer
in $HOME/.config/systemd/user
my-job.service
my-job.timer
Then enable the newly created units, and start the timer:
To verify that the timer is set:
journalctl -xe
should show log entries of the job being run.
systemctl --user status disk-usage.service
can help diagnose issue as well (eg: bad path of script or shell)