The cron daemon wakes every minute and runs each crontab line whose schedule matches. Edit your crontab with crontab -e, list it with -l, and beware -r, which deletes it without asking. A line holds five fields (minute, hour, day of month, month, day of week with 0 and 7 as Sunday), then the command. * is every value, 1,15 a list, 9-17 a range, */5 a step:
*/5 * * * * every five minutes; 30 2 * * * 02:30 daily, server time zone.
0 9-17 * * 1-5 on the hour, 09:00-17:00, weekdays.
0 4 1 * mon 04:00 on the 1st and every Monday: restricted day fields are ORed.
@reboot, @hourly, @daily, @weekly, @monthly replace the five fields.
(crontab -l 2>/dev/null; echo "* * * * * date '+\%F \%T tick' >> /tmp/tick.log") | crontab -
sleep 180; cat /tmp/tick.log
sudo journalctl -u cron --since -1min -o cat -g tick2026-09-23 14:03:01 tick 2026-09-23 14:04:01 tick 2026-09-23 14:05:01 tick (dev) CMD (date '+%F %T tick' >> /tmp/tick.log)
CMD proves cron started the job, not that it worked, so log its output. Laravel 2,157 's scheduler (Laravel) needs exactly one every-minute line, running php artisan schedule:run.