A backup script is only useful if it runs every night, even when nobody remembers. cron and systemd timers run scripts on a schedule, and flock stops two copies from colliding. Use cron for simple jobs, and a systemd timer when you want journal logs, no overlap and catch-up after downtime. Most "it did not run" problems come from PATH, missing logs or the server's time zone, not the schedule itself.