Interview › Scripting (Bash, Groovy)
What is the difference between a cron job and a systemd timer? [Advanced]
Answer
Cron is the traditional time-based scheduler. A systemd timer is integrated with systemd units, logs, dependencies, missed-run handling, randomized delays, and service isolation. On modern Linux servers, I prefer systemd timers for managed operational jobs.
Technical explanation
Cron is simple and widely available, but its environment and logging are minimal.
systemd timers can trigger services, show status with systemctl, log to journald, and run missed jobs with Persistent=true.
For containers and Kubernetes, use the platform's scheduler, such as Kubernetes CronJob, rather than host cron when possible.
Hands-on example
# /etc/systemd/system/backup.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
# /etc/systemd/system/backup.timer
[Timer]
OnCalendar=*-*-* 02:30:00
Persistent=true
[Install]
WantedBy=timers.target
systemctl enable --now backup.timer
Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.
More Scripting (Bash, Groovy) interview questions
- What is the purpose of the shebang line, and what does #!/bin/bash do? [Basic]
- What is the difference between sh and bash? [Basic]
- How do you make a script executable and run it? [Basic]
- What is the difference between running a script with ./script.sh, bash script.sh, and source script.sh? [Basic]
- What does sourcing a script do differently from executing it? [Basic]
- How do you declare a variable in Bash, and why are spaces around = not allowed? [Basic]
- What is the difference between $var and ${var}? [Basic]
- What is the difference between single quotes and double quotes in Bash? [Basic]