====== Cron tips ====== Tips for writing crontab expressions: - If the day-of-month or day-of-week part starts with a *, they form an intersection. Otherwise they form a union. * * 3 * 1 runs on the 3rd day of the month and on Monday (union), whereas * * */2 * 1 runs on every second day of the month only if it's also a Monday (intersection). The [[https://crontab.guru/crontab.5.html|manpage]] is incorrect about this detail. [[bug|More info]]. - Run your servers including the cron process in UTC timezone. [[linux:misc:worst_server_setup_mistke|Why?]] - Some cron implementations allow to specify years and seconds. However, cron is not the best tool if you need to operate at those levels. - Don't use @reboot because it has too many issues. - More difficult schedules can be realized by combining multiple cron expressions. For example, if you need to run X every 90 minutes, create one crontab entry that runs X every 3 hours on the hour (0 */3 * * *), and a second crontab entry that runs X every 3 hours with an offset (30 1/3 * * *). - Another alternative for complicated schedules is [[https://www.gnu.org/software/mcron/|Mcron]]. More tips: [[Best practices for cron]]