Q: A cron job configured to run every midnight is failing, but when you run the script manually as the same user, it works perfectly. Why?
This is almost always an environment variable issue.
#Linux #Linux / SRE — Scenario-Based Interview Questions #L2 #SRE #Systems #Troubleshooting
🎙️ Candidate Opening & Architectural Context
""During an on-call shift, our alerts triggered when a critical Linux production server exhibited this behavior. The interviewer is testing: Cron environment variations, absolute paths.. I structure my answer around systematic triage first, root cause analysis second, and permanent remediation third.""
Advertisement
🛠️ Production Runbook & Step-by-Step Resolution
1️⃣
Initial Diagnostics & Root Cause Analysis
This is almost always an environment variable issue.
- The script should use absolute paths for every command (e.g.,
/usr/bin/curlinstead ofcurl). - Alternatively, the crontab can explicitly source the environment at execution:
- Any variables needed by the script should be explicitly exported at the top of the script.
2️⃣
Remediation & Permanent Safeguards
When a user logs in interactively, profiles like ~/.bashrc and /etc/profile are sourced, setting up $PATH, aliases, and application-specific variables. Cron executes with a heavily restricted, minimal environment (often just /usr/bin:/bin). To fix this: 0 0 * * * . /home/user/.bash_profile; /home/user/script.sh
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: The script should use absolute paths for every command (e.g., /usr/bin/curl instead of curl).."
⚡ 60-Second Elevator Pitch Talking Points
- The script should use absolute paths for every command (e.g., /usr/bin/curl instead of curl).
- Alternatively, the crontab can explicitly source the environment at execution:
- Any variables needed by the script should be explicitly exported at the top of the script.
Advertisement