Affected versions: Debian 12

πŸ“– ~1 min read

Table of contents
  1. Symptom & Impact
  2. Environment & Reproduction
  3. Root Cause Analysis
  4. Quick Triage
  5. Step-by-Step Diagnosis
  6. Solution – Primary Fix
  7. Solution – Alternative Approaches
  8. Verification & Acceptance Criteria
  9. Rollback Plan
  10. Prevention & Hardening
  11. Related Errors & Cross-Refs
  12. References & Further Reading

Symptom & Impact

Routine automation does not execute, causing backup and maintenance gaps.

Environment & Reproduction

Appears after service restarts, package updates, or changed script permissions.

systemctl status cron
crontab -l
ls -l /etc/cron.d

Root Cause Analysis

Cron daemon inactive, malformed schedule syntax, or PATH/environment assumptions.

Quick Triage

Check daemon state and recent execution logs.

systemctl is-active cron
journalctl -u cron -n 120 --no-pager
grep -RIn '' /etc/cron.d | head -n 40

Step-by-Step Diagnosis

Validate job syntax, shebang, and executable bits.

crontab -l
namei -l /usr/local/bin/.sh 2>/dev/null || true
grep -RIn "cron|CRON|error" /var/log 2>/dev/null | tail -n 20
Illustrative mockup for debian-12 β€” terminal_or_shell
Checking cron service and job definitions β€” Illustrative mockup β€” Progressive Robot

Solution – Primary Fix

Fix job definitions, ensure executable scripts, and restart cron.

Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.

chmod +x /usr/local/bin/.sh 2>/dev/null || true
(crontab -l; echo '*/15 * * * * /usr/local/bin/.sh >> /var/log/.log 2>&1') | crontab -
sudo systemctl restart cron
Illustrative mockup for debian-12 β€” log_or_config
Fixing cron environment and permissions β€” Illustrative mockup β€” Progressive Robot

Solution – Alternative Approaches

Migrate critical periodic jobs to systemd timers for richer observability.

systemctl list-timers
sudo systemctl enable --now .timer
systemctl status .timer

Verification & Acceptance Criteria

Job executes on schedule and logs expected output.

systemctl status cron
tail -n 40 /var/log/.log 2>/dev/null || true
run-parts --test /etc/cron.daily

Rollback Plan

Restore previous crontab and remove new entries.

crontab -l > /var/tmp/crontab.bak.$(date +%s)
crontab /var/tmp/crontab.previous 2>/dev/null || true
systemctl restart cron

Prevention & Hardening

Version cron definitions and use absolute paths in scripts.

crontab -l
which bash
printenv | sort | head -n 40

Frequently paired with permission denials and missing runtime environment variables.

Related tutorial: View the step-by-step tutorial for Debian 12.

View all Debian 12 tutorials on the Tutorials Hub β†’

Browse all common problems & solutions on the Tutorials Hub.

References & Further Reading

Debian cron and systemd timer administration documentation.

Need Expert Help?

If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today β€” we respond within one business day.