Shell Scripting Complete 13: cron आणि systemd Timers ने Scripts Schedule करा
Script स्वतःहून चालते तेव्हा सगळ्यात उपयोगी: रात्री 2 ला backup, दर सोमवारी report, दर 5 मिनिटांनी health check. Linux कडे दोन मुख्य schedulers आहेत. cron जुना, सोपा आणि सगळीकडे. systemd timers नवीन, journald ला log करतात, चुकलेले runs भरून काढू शकतात आणि resource limits देतात. या chapter मधे crontab syntax, cron environment, cron jobs चं logging आणि locking, मग .service आणि .timer units, OnCalendar, Persistent, RandomizedDelaySec, systemctl list-timers आणि journalctl, आणि दोघांमधून कसं निवडायचं ते शिकाल. प्रत्येक topic रोजच्या उदाहरणाने सुरू होतो आणि मग अनेक industries ची उदाहरणं.
या chapter मध्ये तुम्ही काय शिकाल
- Crontab lines वाचा आणि लिहा
- Cron environment fix: PATH, shell, mail
- Cron jobs log आणि lock
- systemd service आणि timer लिहा
- OnCalendar, Persistent आणि delays वापरा
- cron की timers निवडा
1. रोजचं उदाहरण: दूधवाला आणि alarm घड्याळ
हे का लागतं?
पुण्यात दूधवाला रोज सकाळी 6 ला न बोलावता येतो. तुमचा alarm फक्त weekdays ला 6:30 ला वाजतो. तुम्ही प्रवासात असाल तर smart alarm काय चुकलं ते सांगू शकतो. cron म्हणजे दूधवाला: ठराविक वेळ, प्रश्न नाहीत. systemd timer म्हणजे smart alarm: record ठेवतो, machine जागं झाल्यावर चुकलेलं काम चालवू शकतो आणि सगळं diary मधे लिहितो.
हे काय आहे?
दूधवाल्याची ठराविक वेळ = crontab line. फक्त weekdays = day-of-week field 1-5. Smart alarm = .timer unit. ते सुरू करणारं काम = .service unit. चुकलेलं काम नंतर = Persistent=true. Diary = journalctl.
कसं करायचं (step by step)
2. crontab syntax
हे का लागतं?
'दर 15 मिनिटांनी' किंवा 'संध्याकाळी 7 ला' सारखे schedules चुकीशिवाय वाचता-लिहिता यायला हवेत.
हे काय आहे?
पाच time fields मग command: minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-7, 0 आणि 7 रविवार). * म्हणजे प्रत्येक, */15 म्हणजे दर 15, 1-5 range, 1,15 list. Shortcuts: @reboot, @daily, @hourly, @weekly. दोन्ही day fields set असतील तर कोणतंही जुळलं की cron चालतो. Crontab lines मधे % म्हणजे newline, म्हणून \% असं escape करा (उदा. date +\%F मधे).
| Line | कधी चालतो |
|---|---|
| */5 * * * * | दर 5 मिनिटांनी |
| 0 2 * * * | रोज 2:00 |
| 30 18 * * 1-5 | weekdays संध्या 6:30 |
| 0 9 1 * * | 1 तारखेला सकाळी 9 |
| @reboot | boot वर एकदा |
कसं करायचं (step by step)
- Edit.
crontab -e
याचा अर्थ: Editor मधे crontab उघडतो.
- List.
crontab -l
Output:
0 2 * * * /opt/bin/backup.sh
याचा अर्थ: तुमचे jobs.
- दर 15 min.
*/15 * * * * /opt/bin/health.sh
याचा अर्थ: Minutes 0, 15, 30, 45.
- सोमवार report.
0 8 * * 1 /opt/bin/weekly-report.sh
याचा अर्थ: सोमवार सकाळी 8.
- Percent escape.
0 1 * * * tar czf /backup/etc-$(date +\%F).tgz /etc
याचा अर्थ: \ शिवाय line तुटते.
3. Cron environment
हे का लागतं?
'मी चालवलं की चालतं पण cron मधे नाही' हा सगळ्यात common cron problem.
हे काय आहे?
cron छोट्या PATH ने (बहुदा /usr/bin:/bin), shell म्हणून sh, working dir तुमचं home, आणि .bashrc शिवाय चालतो. म्हणून: full paths वापरा किंवा crontab वर PATH set करा, गरज असेल तर SHELL=/bin/bash, script मधे cd करा, आणि env files स्वतः load करा. Mail set असेल तर MAILTO=you@x output mail ने पाठवतो; MAILTO="" बंद करतो. System jobs /etc/cron.d files मधे extra user field सह.
कसं करायचं (step by step)
- Crontab header.
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
MAILTO=""
याचा अर्थ: crontab -e च्या वर.
- Cron env बघा.
* * * * * env > /tmp/cron-env.txt
Output:
PATH=/usr/bin:/bin
SHELL=/bin/sh
HOME=/home/ec2-user
याचा अर्थ: तुमच्याशी compare.
- System job.
echo '0 3 * * * root /opt/bin/rotate.sh' | sudo tee /etc/cron.d/rotate
Output:
0 3 * * * root /opt/bin/rotate.sh
याचा अर्थ: Time नंतर user field.
- cron चालू?
systemctl status crond # Ubuntu: cron
Output:
Active: active (running)
याचा अर्थ: Service up हवी.
4. Cron jobs log आणि lock
हे का लागतं?
Default cron output कुठेच जात नाही, आणि slow jobs overlap होऊ शकतात.
हे काय आहे?
दोन्ही streams log मधे append: >> /var/log/job.log 2>&1. किंवा | logger -t job ने journald ला. flock -n ने wrap करा म्हणजे दुसरी copy skip. timeout जोडा म्हणजे अडकलेला job कायम चालणार नाही. cron स्वतः चालला का ते journalctl -u crond किंवा grep CRON /var/log/syslog ने तपासा.
कसं करायचं (step by step)
- पूर्ण safe line.
*/10 * * * * flock -n /tmp/sync.lock timeout 9m /opt/bin/sync.sh >> /var/log/sync.log 2>&1
याचा अर्थ: Lock, timeout, log.
- journald ला.
0 2 * * * /opt/bin/backup.sh 2>&1 | logger -t backup
याचा अर्थ: journalctl -t backup ने वाचा.
- cron चालला?
journalctl -u crond --since '1 hour ago' | grep sync
Output:
Oct 25 10:10:01 host CROND[4410]: (ec2-user) CMD (flock -n /tmp/sync.lock ...)
याचा अर्थ: हो 10:10 ला.
- Ubuntu syslog.
grep CRON /var/log/syslog | tail -2
Output:
Oct 25 10:10:01 host CRON[4410]: (ubuntu) CMD (/opt/bin/sync.sh)
याचा अर्थ: तोच check.
5. systemd service + timer
हे का लागतं?
Timers journald मधे logs, exit status, retries आणि limits देतात, आधीच माहित असलेल्या systemctl commands ने.
हे काय आहे?
/etc/systemd/system मधे दोन files लिहा. name.service काय चालवायचं ते सांगतं (Type=oneshot, ExecStart=/opt/bin/script.sh, User=). name.timer कधी ते सांगतं (OnCalendar=) आणि त्यात WantedBy=timers.target. मग systemctl daemon-reload आणि systemctl enable --now name.timer. Job हाताने systemctl start name.service ने चालवा. User timers ~/.config/systemd/user मधे systemctl --user सह.
कसं करायचं (step by step)
- Service file.
sudo tee /etc/systemd/system/backup.service > /dev/null <<'EOF'
[Unit]
Description=Nightly backup
[Service]
Type=oneshot
User=backup
ExecStart=/opt/bin/backup.sh
EOF
याचा अर्थ: काय चालवायचं.
- Timer file.
sudo tee /etc/systemd/system/backup.timer > /dev/null <<'EOF'
[Unit]
Description=Run backup daily at 02:00
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
EOF
याचा अर्थ: कधी चालवायचं.
- Enable.
sudo systemctl daemon-reload && sudo systemctl enable --now backup.timer
Output:
Created symlink /etc/systemd/system/timers.target.wants/backup.timer
याचा अर्थ: Schedule झालं.
- आत्ता चालवा.
sudo systemctl start backup.service; systemctl status backup.service --no-pager | head -3
Output:
backup.service - Nightly backup
Active: inactive (dead) since Sun 2026-10-25 11:20:04 IST
याचा अर्थ: oneshot संपला.
6. OnCalendar, Persistent आणि delays
हे का लागतं?
Laptops sleep होतात, servers reboot होतात, आणि 500 servers एकाच API ला 02:00:00 ला मारणं म्हणजे वादळ.
हे काय आहे?
OnCalendar DayOfWeek Year-Month-Day Hour:Minute:Second वापरतो, जसं Mon..Fri *-*-* 18:30 किंवा *-*-01 09:00 किंवा shortcuts daily, weekly, hourly. systemd-analyze calendar ने तपासा. OnBootSec=5min आणि OnUnitActiveSec=15min boot किंवा शेवटच्या run पासून चालतात. Persistent=true चुकलेला job पुढच्या boot ला चालवतो. RandomizedDelaySec=10m servers पसरवतो. AccuracySec किती अचूक हवं ते ठरवतो.
| Setting | अर्थ |
|---|---|
| OnCalendar=daily | रोज मध्यरात्री |
| OnCalendar=Mon..Fri 18:30 | weekdays संध्या 6:30 |
| OnUnitActiveSec=15min | शेवटच्या run नंतर 15 min |
| Persistent=true | चुकलेला run भरून |
| RandomizedDelaySec=10m | 0-10 min random delay |
कसं करायचं (step by step)
- Calendar check.
systemd-analyze calendar 'Mon..Fri 18:30'
Output:
Original form: Mon..Fri 18:30
Normalized form: Mon..Fri *-*-* 18:30:00
Next elapse: Mon 2026-10-26 18:30:00 IST
याचा अर्थ: पुढचा run दिसतो.
- दर 15 मिनिटांनी.
OnCalendar=*:0/15
याचा अर्थ: cron च्या */15 सारखं.
- महिन्याची 1 तारीख.
OnCalendar=*-*-01 09:00:00
याचा अर्थ: Monthly invoice run.
- Fleet पसरवा.
[Timer]
OnCalendar=daily
RandomizedDelaySec=30m
याचा अर्थ: एकदम गर्दी नाही.
7. Timers बघा: list-timers आणि journalctl
हे का लागतं?
Job शेवटचा कधी चालला, पुढचा कधी आणि चालला का ते कळायला हवं.
हे काय आहे?
systemctl list-timers प्रत्येक timer साठी NEXT, LEFT, LAST आणि PASSED दाखवतो. journalctl -u name.service प्रत्येक run चं script output दाखवतो. systemctl status name.service शेवटचा exit code दाखवतो. Job fail झाल्यावर alert unit चालवायला [Unit] मधे OnFailure=alert@%n.service जोडा.
कसं करायचं (step by step)
- पुढचे runs.
systemctl list-timers backup.timer --no-pager
Output:
NEXT LEFT LAST PASSED UNIT
Mon 2026-10-26 02:00:00 IST 14h left Sun 2026-10-25 02:00:03 IST 9h ago backup.timer
याचा अर्थ: शेवटचा आणि पुढचा.
- Runs चं output.
journalctl -u backup.service --since yesterday --no-pager | tail -2
Output:
Oct 25 02:00:41 host backup.sh[1201]: backup ok 2.1G
Oct 25 02:00:41 host systemd[1]: backup.service: Deactivated successfully.
याचा अर्थ: Script output journal मधे.
- Fail?
systemctl is-failed backup.service
Output:
inactive
याचा अर्थ: Fail नाही.
- Failure वर alert.
[Unit]
OnFailure=notify-fail@%n.service
याचा अर्थ: Failure वर दुसरं unit.
8. cron की systemd timer?
हे का लागतं?
दोन्ही चालतात; योग्य निवड नंतरचा त्रास वाचवते.
हे काय आहे?
Simple per-user jobs साठी, जुन्या किंवा minimal systems वर, किंवा team ला आधीच माहित असेल तर cron वापरा. journald logs, downtime नंतर catch-up, fleet वर random delay, dependencies (After=network-online.target), resource limits (MemoryMax=, CPUQuota=) आणि systemctl मधे status हवं असेल तर timers. बऱ्याच teams महत्त्वाचे server jobs timers वर नेतात आणि quick personal tasks साठी cron ठेवतात.
| गरज | cron / timer |
|---|---|
| Simple and everywhere | हो / बहुतेक |
| Logs in journald | manual / built in |
| Catch up missed run | नाही (anacron) / Persistent |
| Random delay | manual sleep / RandomizedDelaySec |
| Resource limits | नाही / MemoryMax, CPUQuota |
कसं करायचं (step by step)
- Memory limit.
[Service]
MemoryMax=512M
CPUQuota=50%
याचा अर्थ: Job server खाऊ शकत नाही.
- Network साठी थांबा.
[Unit]
After=network-online.target
Wants=network-online.target
याचा अर्थ: Boot वर लवकर failures नाहीत.
- नंतर एकदा.
sudo systemd-run --on-calendar='2026-10-26 01:00' /opt/bin/migrate.sh
Output:
Running timer as unit: run-u91.timer
याचा अर्थ: at सारखं, logs सह.
9. अनेक industries मधली खरी उदाहरणं
हे का लागतं?
तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.
हे काय आहे?
प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.
कसं करायचं (step by step)
| Team आणि शहर | ते कसं वापरतात | Command |
|---|---|---|
| Shruti, bank, Pune | रात्री 2 ला EOD backup | 0 2 * * * /opt/bin/eod-backup.sh |
| Tom, newspaper, Manchester | Weekdays सकाळी 5 ला e-paper | OnCalendar=Mon..Fri 05:00 |
| Wei, IoT, Shanghai | Lock सह दर 15 min sensor upload | */15 * * * * flock -n /tmp/u.lock /opt/bin/up.sh |
| Noura, retail, Doha | Spread सह fleet cache warm | RandomizedDelaySec=20m |
| Pedro, hospital, Lisbon | चुकलेलं audit export भरून | Persistent=true |
| Mangesh, APMC market, Nashik | रोज सकाळी 6 ला price list | 0 6 * * * /opt/bin/prices.sh >> /var/log/prices.log 2>&1 |
10. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
Job never runs | cron service बंद किंवा चुकीची line | Service आणि syntax तपासा.systemctl status crond |
command not found in cron only | छोटा PATH | Full paths किंवा PATH line.PATH=/usr/local/bin:/usr/bin:/bin |
Command cut at % sign | crontab मधे % म्हणजे newline | \% असं escape.date +\%F |
No output anywhere | Redirect नाही, mail नाही | Log ला redirect.>> /var/log/job.log 2>&1 |
bad minute / errors in crontab file | चुकीची field संख्या | पाच fields मग command.crontab -e |
Timer not in list-timers | Enable नाही किंवा daemon-reload नाही | Reload आणि enable.sudo systemctl daemon-reload && sudo systemctl enable --now x.timer |
Failed to parse calendar specification | चुकीचा OnCalendar | Expression test.systemd-analyze calendar 'Mon *-*-* 08:00' |
Service runs as root unexpectedly | User= line नाही | User= जोडा.User=backup |
Overlapping runs | Slow job, लहान interval | flock किंवा OnUnitActiveSec.flock -n /tmp/j.lock ./j.sh |
11. Troubleshooting step by step
हे का लागतं?
आधी scheduler चालला का, मग script fail झाली का, मग का ते शोधा.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- cron चालला?
journalctl -u crond --since today | tail
- Timer status.
systemctl list-timers --all
- शेवटच्या run चं output.
journalctl -u backup.service -n 30
- Exit status.
systemctl status backup.service
- Same env test.
env -i PATH=/usr/bin:/bin /bin/sh -c /opt/bin/backup.sh
- Calendar check.
systemd-analyze calendar daily
12. Lab 1: Log आणि lock सह safe cron job
हे का लागतं?
flock, timeout आणि log सह दर मिनिटाला छोटा disk report schedule करा, चालतो ते confirm करा, मग काढा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Script.
mkdir -p ~/bin && cat > ~/bin/diskrep.sh <<'X'
#!/usr/bin/env bash
set -euo pipefail
printf '%(%F %T)T ' -1; df -h / | tail -1
X
chmod +x ~/bin/diskrep.sh && ~/bin/diskrep.sh
Output:
2026-10-25 11:40:02 /dev/xvda1 20G 8.1G 12G 41% /
- Crontab मधे.
( crontab -l 2>/dev/null; echo "* * * * * flock -n /tmp/diskrep.lock timeout 50 $HOME/bin/diskrep.sh >> $HOME/diskrep.log 2>&1" ) | crontab -
- Line तपासा.
crontab -l | tail -1
Output:
* * * * * flock -n /tmp/diskrep.lock timeout 50 /home/ec2-user/bin/diskrep.sh >> /home/ec2-user/diskrep.log 2>&1
- 2 min थांबा आणि वाचा.
sleep 125; cat ~/diskrep.log
Output:
2026-10-25 11:41:01 /dev/xvda1 20G 8.1G 12G 41% /
2026-10-25 11:42:01 /dev/xvda1 20G 8.1G 12G 41% /
- काढा.
crontab -l | grep -v diskrep.sh | crontab -; rm ~/diskrep.log
13. Lab 2: तोच job systemd timer म्हणून
हे का लागतं?
Disk report ला दर 2 मिनिटांनी चालणारी service आणि timer बनवा, list-timers आणि journalctl मधे बघा, मग काढा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Script copy.
sudo install -m 755 ~/bin/diskrep.sh /usr/local/bin/diskrep.sh
- Service.
sudo tee /etc/systemd/system/diskrep.service > /dev/null <<'EOF'
[Unit]
Description=Disk report
[Service]
Type=oneshot
ExecStart=/usr/local/bin/diskrep.sh
EOF
- Timer.
sudo tee /etc/systemd/system/diskrep.timer > /dev/null <<'EOF'
[Unit]
Description=Disk report every 2 minutes
[Timer]
OnCalendar=*:0/2
Persistent=true
[Install]
WantedBy=timers.target
EOF
- Enable आणि list.
sudo systemctl daemon-reload && sudo systemctl enable --now diskrep.timer && systemctl list-timers diskrep.timer --no-pager
Output:
NEXT LEFT UNIT
Sun 2026-10-25 11:52:00 IST 1min left diskrep.timer
- Run नंतर logs.
sleep 130; journalctl -u diskrep.service -n 2 --no-pager
Output:
Oct 25 11:52:00 host diskrep.sh[3101]: 2026-10-25 11:52:00 /dev/xvda1 20G 8.1G 12G 41% /
Oct 25 11:52:00 host systemd[1]: diskrep.service: Deactivated successfully.
- काढा.
sudo systemctl disable --now diskrep.timer && sudo rm /etc/systemd/system/diskrep.{service,timer} && sudo systemctl daemon-reload
Output:
Removed /etc/systemd/system/timers.target.wants/diskrep.timer.
Ravindra Bagale's Tip
Before you schedule anything, make the script work with full paths, set -euo pipefail, a log and a flock guard. Then test the schedule: crontab -l for cron, systemd-analyze calendar and list-timers for timers. Always check the first real run in the log instead of assuming it worked.
Ravindra Bagale's Tip – मराठी
काहीही schedule करण्याआधी script full paths, set -euo pipefail, log आणि flock guard सह चालेल असं करा. मग schedule test करा: cron साठी crontab -l, timers साठी systemd-analyze calendar आणि list-timers. चाललं असेल असं समजू नका, पहिला खरा run log मधे नेहमी तपासा.
Ravindra Bagale's Tip – हिंदी
कुछ भी schedule करने से पहले script को full paths, set -euo pipefail, log और flock guard के साथ चलने लायक बनाइए. फिर schedule test कीजिए: cron के लिए crontab -l, timers के लिए systemd-analyze calendar और list-timers. चल गया होगा, ऐसा मत मानिए; पहला असली run log में हमेशा देखिए.
14. नेहमी विचारले जाणारे प्रश्न
प्र. Cron time zone?
CRON_TZ नसेल तर server चा zone.
प्र. दर 30 seconds?
OnUnitActiveSec=30s सह timer.
प्र. User crontabs कुठे?
/var/spool/cron.
प्र. anacron काय?
बंद असताना चुकलेले daily jobs.
प्र. User साठी timer?
systemctl --user आणि loginctl enable-linger.
प्र. Timer आत्ता test?
systemctl start x.service.
प्र. Day 0 की 7?
दोन्ही रविवार.
प्र. सगळे cron jobs काढा?
crontab -r, काळजीने.
15. मुलाखत प्रश्न आणि उत्तरं
Beginner level
प्र. crontab edit?
crontab -e.
प्र. Cron fields?
पाच, मग command.
प्र. दर 5 मिनिटांनी?
*/5 * * * *.
प्र. Timers list?
systemctl list-timers.
Mid level level
प्र. फक्त cron मधे fail का?
PATH आणि env वेगळे.
प्र. Timer ला कोणत्या files?
.service आणि .timer.
प्र. चुकलेला run?
Persistent=true.
प्र. Crontab मधे percent?
\% असं escape.
Senior level
प्र. Timers कधी?
Logs, catch-up, limits, dependencies हवे तेव्हा.
प्र. Fleet storms टाळा?
RandomizedDelaySec किंवा sleep $((RANDOM%600)).
प्र. Failure वर alert?
OnFailure= unit किंवा exit code monitor.
प्र. Timers मधे overlap?
चालू oneshot service दुसऱ्यांदा सुरू होत नाही.
घरी करून बघा
- Monday ते Friday संध्या 7:30 ला script चालवणारी crontab line लिहा आणि नीट तपासा.
- systemd-analyze calendar ने तीन schedules test करा: दर रविवार सकाळी 10, दर महिन्याची 1 तारीख, दर 10 मिनिटांनी.
सराव Tasks
Ahmednagar Sugar Co-op हा अहिल्यानगर मधला साखर सहकारी व्यवसाय आहे. Balasaheb Pawar त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 21
सोपं crontab list
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: Balasaheb Pawar ला Ahmednagar Sugar Co-op मधे फक्त backup असलेल्या cron lines बघायच्या आहेत.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं crontab edit
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: nano editor मधे crontab editing साठी उघडा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Timers list
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: Pager शिवाय, inactive सह सगळे systemd timers list करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Timer enable
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: report.timer enable करून आत्ता start करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Units reload
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: User unit files edit केल्यावर per-user systemd manager reload करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Job logs
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: backup.service च्या शेवटच्या 50 log lines दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Cron service
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: cron daemon crond active आहे का एवढंच print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Timer status
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: backup.timer चा status दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Current time
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: timedatectl ने current date आणि time zone settings print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम दुसरा user
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: Root म्हणून asha चा crontab list करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Calendar check
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: Mon..Fri 09:00 OnCalendar expression पुढे कधी fire होईल ते check करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Unit verify
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: backup.service मधल्या चुका check करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम आत्ता चालवा
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: report.timer मागचा job service start करून आत्ता एकदा चालवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Schedule थांबवा
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: backup.timer disable आणि stop करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Cron logs
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: crond च्या शेवटच्या 30 journal entries दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Unit दाखवा
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: systemd ला दिसतो तसा backup.timer चा content print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Failed units
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: Failed units list करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Zone set
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: Server time zone Asia/Kolkata करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Cron-like env
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: cron सारखं PATH=/usr/bin:/bin सोडून रिकाम्या environment ने report.sh चालवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Transient timer
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: systemd-run ने आतापासून 10 minutes नी एकदा df -h चालवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Failed reset
का: BIZ reports आणि backups schedule वर चालवतो.
काय करायचं: backup.service ची failed state clear करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
16. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- min hour dom mon dow command.
- Cron चा PATH छोटा; full paths.
- प्रत्येक job ला log, flock आणि timeout.
- .service + .timer, enable --now.
- OnCalendar, Persistent, RandomizedDelaySec.
- list-timers आणि journalctl -u.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








अजून cards: Ravi Sir's Cards.