Ravindra BagaleCourses & study guides English

Linux Job Scheduling: cron, crontab, at आणि systemd Timers सोप्या भाषेत

काही काम आपोआप व्हायला हवं: रोज रात्री backup, दर सोमवारी report, दर तासाला cleanup. Linux यासाठी तीन tools देतो. cron ठराविक schedule ने jobs चालवतो. at नंतरच्या वेळेला एकदाच job चालवतो. systemd timers हा आधुनिक पर्याय, logs आणि catch-up सह. प्रत्येक command आणि प्रत्येक time field एक-एक करून शिकू.

या chapter मध्ये तुम्ही काय शिकाल

  • Cron चे पाच time fields वाचा आणि लिहा
  • crontab -e, -l, -r आणि -u वापरा
  • Special strings आणि /etc/cron.d वापरा
  • Cron PATH, output आणि overlap problems सोडवा
  • at, atq आणि atrm ने one-time jobs
  • OnCalendar आणि Persistent सह systemd timers लिहा

1. रोजचं उदाहरण: दूधवाला आणि alarm

हे का लागतं?

दूधवाला न सांगता रोज सकाळी 6 ला येतो. हा repeating schedule. दुपारी 4:30 च्या dentist visit चा phone alarm एकदाच वाजतो. आणि चांगलं alarm app phone बंद असेल तर 'missed alarm' दाखवतं, म्हणजे तरी कळतं.

हे काय आहे?

दूधवाला = cron. One-time alarm = at. Missed-alarm वालं alarm app = Persistent=true सह systemd timer.

कसं करायचं (step by step)

cron job कसा चालवतोcrond दर minute ला जागा होतोUser crontabs, /etc/crontab आणि /etc/cron.d वाचतोप्रत्येक line चे पाच fields सध्याच्या वेळेशी जुळवतोजुळलं की /bin/sh आणि छोट्या PATH ने command सुरूRedirect केलं नाही तर output mail होतं किंवा हरवतंRun /var/log/cron किंवा journal मधे log होतो
cron system time zone वापरतो. timedatectl ने तपासा.

2. पाच time fields

हे का लागतं?

प्रत्येक cron चूक चुकीच्या field ने सुरू होते. एकदा शिका आणि कोणताही schedule वाचता येईल.

हे काय आहे?

minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-7, 0 आणि 7 रविवार). * = प्रत्येक. , = list (1,15). - = range (1-5). / = step (*/10). मग command.

Scheduleअर्थ
*/5 * * * *दर 5 minutes
0 2 * * *रोज 02:00
30 9 * * 1-5सोमवार ते शुक्रवार 09:30
0 0 1 * *प्रत्येक महिन्याच्या 1 तारखेला मध्यरात्री
0 */6 * * *दर 6 तासांनी
15 10 * * 0रविवार 10:15

कसं करायचं (step by step)

  1. रात्री 2 ला backup.
0 2 * * * /usr/local/bin/backup.sh

Output:

(a crontab line)

याचा अर्थ: Minute 0, hour 2, रोज.

  1. Office hours report.
30 9 * * 1-5 /usr/local/bin/report.sh

Output:

(a crontab line)

याचा अर्थ: फक्त weekdays.

  1. विश्वास ठेवण्याआधी schedule तपासा.
systemd-analyze calendar 'Mon..Fri 09:30'

Output:

  Original form: Mon..Fri 09:30
Normalized form: Mon..Fri *-*-* 09:30:00
    Next elapse: Mon 2026-10-26 09:30:00 IST

याचा अर्थ: पुढचा run time.

3. crontab -e आणि -l: तुमचे jobs edit आणि list

हे का लागतं?

प्रत्येक user चा स्वतःचा crontab. crontab मधून edit केल्याने syntax तपासलं जातं आणि crond ला कळतं.

हे काय आहे?

crontab -e तुमचा crontab $EDITOR मधे उघडतो. Save केलं की install. crontab -l print. /var/spool/cron files हाताने कधी edit नका. # ने सुरू lines comments.

कसं करायचं (step by step)

  1. Editor उघडा.
EDITOR=nano crontab -e

Output:

crontab: installing new crontab

याचा अर्थ: Save नंतर दिसतं.

  1. Jobs list.
crontab -l

Output:

# nightly backup
0 2 * * * /usr/local/bin/backup.sh

याचा अर्थ: cron तुमच्यासाठी काय चालवेल.

  1. अजून crontab नाही.
crontab -l

Output:

no crontab for ec2-user

याचा अर्थ: नव्या user साठी normal.

4. crontab FILE, -r आणि -u

हे का लागतं?

Automation tools files मधून crontabs install करतात. Admins कधी दुसऱ्या user चे jobs manage करतात.

हे काय आहे?

crontab FILE पूर्ण crontab file ने replace. crontab -r प्रश्न न विचारता सगळे jobs delete (-i आधी विचारतो). sudo crontab -u USER -l किंवा -e दुसऱ्या user वर. आधी backup: crontab -l > ~/cron.bak.

कसं करायचं (step by step)

  1. Jobs backup.
crontab -l > ~/cron.bak && wc -l ~/cron.bak

Output:

2 /home/ec2-user/cron.bak

याचा अर्थ: कोणत्याही बदलाआधी हे.

  1. File मधून install.
crontab ~/cron.bak

Output:

(no output)

याचा अर्थ: सगळं replace.

  1. App user चे jobs.
sudo crontab -u shop -l

Output:

*/10 * * * * /opt/shop/bin/sync

याचा अर्थ: फक्त बघणं.

  1. प्रश्नासह delete.
crontab -ri

Output:

crontab: really delete ec2-user's crontab? (y/n)

याचा अर्थ: नुसतं -r विचारत नाही. सावध.

5. Special strings: @reboot, @daily आणि इतर

हे का लागतं?

काही schedules शब्दात वाचायला सोपे. Boot ला एकदा चालवायला cron मधे @reboot हाच मार्ग.

हे काय आहे?

@reboot (crond start ला), @hourly (0 * * * *), @daily किंवा @midnight (0 0 * * *), @weekly (0 0 * * 0), @monthly (0 0 1 * *), @yearly (0 0 1 1 *).

कसं करायचं (step by step)

  1. Boot नंतर cache warm.
@reboot sleep 30 && /opt/shop/bin/warm-cache

Output:

(a crontab line)

याचा अर्थ: sleep network ला वेळ देतो.

  1. Weekly cleanup.
@weekly find /tmp/shop -mtime +7 -delete

Output:

(a crontab line)

याचा अर्थ: रविवार मध्यरात्री.

6. /etc/crontab, /etc/cron.d आणि cron.daily

हे का लागतं?

System आणि package jobs files मधे, user crontab मधे नाही, म्हणजे Git मधे ship आणि review करता येतात.

हे काय आहे?

/etc/cron.d आणि /etc/crontab मधल्या files मधे सहावा field: user. /etc/cron.hourly, daily, weekly, monthly मधल्या scripts run-parts (किंवा anacron) चालवतो; executable हव्या आणि Debian वर नावात dot नको.

कसं करायचं (step by step)

  1. User field सह system job.
echo '*/15 * * * * shop /opt/shop/bin/sync >> /var/log/shop/sync.log 2>&1' | sudo tee /etc/cron.d/shop-sync

Output:

*/15 * * * * shop /opt/shop/bin/sync >> /var/log/shop/sync.log 2>&1

याचा अर्थ: shop user म्हणून.

  1. Daily script.
sudo install -m 755 cleanup.sh /etc/cron.daily/cleanup

Output:

(no output)

याचा अर्थ: Extension नाही, mode 755.

  1. कोणत्या daily scripts चालतील?
run-parts --test /etc/cron.daily

Output:

/etc/cron.daily/cleanup
/etc/cron.daily/logrotate

याचा अर्थ: काय चालेल ते list.

7. cron environment: PATH, SHELL आणि MAILTO

हे का लागतं?

'Terminal मधे चालतं पण cron मधे नाही' हा सर्वात common cron problem. cron खूप छोटं environment देतो.

हे काय आहे?

cron /bin/sh, PATH=/usr/bin:/bin, user चं HOME, .bashrc नाही. Fix: full paths, किंवा crontab च्या वर PATH= आणि SHELL=. MAILTO=you@x output mail करतो; MAILTO="" mail बंद. cron मधे % special: \% असं escape.

कसं करायचं (step by step)

  1. cron चं environment बघा.
* * * * * env > /tmp/cron-env.txt

Output:

(after one minute) PATH=/usr/bin:/bin
SHELL=/bin/sh
HOME=/home/ec2-user

याचा अर्थ: खूप छोटा PATH.

  1. वर set करा.
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
MAILTO=""

Output:

(crontab header lines)

याचा अर्थ: आता jobs ला aws, node वगैरे सापडतात.

  1. date मधे % escape.
0 1 * * * tar czf /backup/site-$(date +\%F).tgz /var/www

Output:

(a crontab line)

याचा अर्थ: \ शिवाय line % ला तुटते.

8. cron output log करणं आणि runs तपासणं

हे का लागतं?

शांतपणे fail होणारा job हा job नसण्यापेक्षा वाईट. तो चालला आणि काय print केलं याचा पुरावा हवा.

हे काय आहे?

>> /var/log/job.log 2>&1 output आणि errors ठेवतो. cron runs /var/log/cron (RHEL) किंवा journal (journalctl -u cron किंवा -u crond) मधे. किंवा logger -t job ला pipe.

कसं करायचं (step by step)

  1. Output ठेवा.
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Output:

(a crontab line)

याचा अर्थ: 2>&1 errors पण पकडतो.

  1. चालला का?
journalctl -u crond --since today --no-pager | grep backup

Output:

Oct 25 02:00:01 web1 CROND[3301]: (root) CMD (/usr/local/bin/backup.sh >> /var/log/backup.log 2>&1)

याचा अर्थ: 02:00:01 ला सुरू.

  1. Output journal ला.
*/5 * * * * /opt/shop/bin/sync 2>&1 | logger -t shop-sync

Output:

(a crontab line)

याचा अर्थ: journalctl -t shop-sync ने वाचा.

9. flock: jobs overlap होऊ देऊ नका

हे का लागतं?

5-minute job कधी 7 minutes घेतो, तर दोन copies एकत्र चालून data बिघडवू शकतात.

हे काय आहे?

flock -n /tmp/NAME.lock COMMAND lock मिळाला तरच चालवतो; -n म्हणजे busy असेल तर लगेच सोडा. Command संपल्यावर lock सुटतो.

कसं करायचं (step by step)

  1. Safe 5-minute sync.
*/5 * * * * flock -n /tmp/sync.lock /opt/shop/bin/sync

Output:

(a crontab line)

याचा अर्थ: दुसरी copy फक्त exit.

  1. हाताने test.
flock -n /tmp/demo.lock sleep 60 & sleep 1; flock -n /tmp/demo.lock echo second; echo exit=$?

Output:

exit=1

याचा अर्थ: दुसरा run नाकारला.

10. at: नंतर एकदाच job

हे का लागतं?

काही tasks एकदाच: आज रात्री 11 ला restart, 2 तासांनी temporary firewall rule काढा.

हे काय आहे?

at package install करून atd सुरू. at TIME stdin मधून commands वाचतो; Ctrl+D ने संपवा. TIME उदा. 23:00, now + 2 hours, 'tomorrow 09:00', noon. -f FILE file मधून. batch load कमी असताना.

कसं करायचं (step by step)

  1. atd सुरू.
sudo systemctl enable --now atd

Output:

(no output)

याचा अर्थ: atd शिवाय काही चालत नाही.

  1. आज रात्री 11 ला restart.
echo 'systemctl restart shop-api' | sudo at 23:00

Output:

job 4 at Sun Oct 25 23:00:00 2026

याचा अर्थ: Job number 4.

  1. 2 तासांनी rule undo.
echo 'firewall-cmd --remove-port=8080/tcp' | sudo at now + 2 hours

Output:

job 5 at Sun Oct 25 14:45:00 2026

याचा अर्थ: Safety net.

11. atq, at -c आणि atrm

हे का लागतं?

Pending one-time jobs बघता आणि cancel करता यायला हवे.

हे काय आहे?

atq pending jobs list (सगळ्यांसाठी sudo atq). at -c N job N काय चालवेल. atrm N delete.

कसं करायचं (step by step)

  1. List.
sudo atq

Output:

4	Sun Oct 25 23:00:00 2026 a root
5	Sun Oct 25 14:45:00 2026 a root

याचा अर्थ: Number, time, queue, user.

  1. आत बघा.
sudo at -c 4 | tail -n 2

Output:

systemctl restart shop-api

याचा अर्थ: शेवटच्या lines तुमचे commands.

  1. Cancel.
sudo atrm 4 && sudo atq

Output:

5	Sun Oct 25 14:45:00 2026 a root

याचा अर्थ: Job 4 गेला.

12. systemd timers: OnCalendar आणि Persistent

हे का लागतं?

Timers मोफत journal logs, resource limits, overlap नाही आणि downtime नंतर catch-up देतात.

हे काय आहे?

दोन files लागतात: NAME.service (काय, Type=oneshot) आणि NAME.timer (कधी). OnCalendar=*-*-* 02:00:00 किंवा daily, Mon..Fri 09:30. Intervals साठी OnBootSec=5min आणि OnUnitActiveSec=1h. Persistent=true चुकलेला job boot ला चालवतो. RandomizedDelaySec load पसरवतो. Timer enable करा, service नाही.

कसं करायचं (step by step)

  1. Service.
sudo tee /etc/systemd/system/backup.service <<'X'
[Unit]
Description=Nightly backup
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
X

Output:

(file text)

याचा अर्थ: [Install] लागत नाही.

  1. Timer.
sudo tee /etc/systemd/system/backup.timer <<'X'
[Unit]
Description=Run backup daily at 2
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
RandomizedDelaySec=10min
[Install]
WantedBy=timers.target
X

Output:

(file text)

याचा अर्थ: Service चंच base नाव.

  1. Timer enable.
sudo systemctl daemon-reload && sudo systemctl enable --now backup.timer

Output:

Created symlink /etc/systemd/system/timers.target.wants/backup.timer → /etc/systemd/system/backup.timer.

याचा अर्थ: आता schedule झाला.

  1. Test साठी आत्ता एकदा.
sudo systemctl start backup.service && journalctl -u backup -n 3 --no-pager

Output:

Oct 25 12:50:01 web1 systemd[1]: Finished Nightly backup.

याचा अर्थ: Logs मोफत.

13. systemctl list-timers

हे का लागतं?

प्रत्येक timer चं एक view हवं: शेवटचा कधी आणि पुढचा कधी.

हे काय आहे?

systemctl list-timers active timers NEXT, LEFT, LAST, PASSED, UNIT, ACTIVATES सह. --all inactive पण.

कसं करायचं (step by step)

  1. सगळे timers.
systemctl list-timers --no-pager | head -3

Output:

NEXT                        LEFT     LAST                        PASSED  UNIT              ACTIVATES
Mon 2026-10-26 02:04:11 IST 13h left Sun 2026-10-25 12:50:01 IST 3s ago backup.timer      backup.service
Mon 2026-10-26 00:00:00 IST 11h left Sun 2026-10-25 00:00:00 IST 12h ago logrotate.timer   logrotate.service

याचा अर्थ: Random delay मुळे 02:04.

  1. Expression test.
systemd-analyze calendar --iterations=3 'Mon *-*-* 08:00'

Output:

Next elapse: Mon 2026-10-26 08:00:00 IST
       Iter. #2: Mon 2026-11-02 08:00:00 IST
       Iter. #3: Mon 2026-11-09 08:00:00 IST

याचा अर्थ: पुढचे तीन runs.

14. अनेक industries मधली खरी उदाहरणं

हे का लागतं?

तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.

हे काय आहे?

प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.

कसं करायचं (step by step)

Team आणि शहरते कसं वापरतातCommand
Neha, CA firm, Puneदर 1 तारखेला GST report0 8 1 * * /opt/ca/gst-report.sh
Oliver, news site, Sydneyदर 10 minutes ला page cache साफ*/10 * * * * flock -n /tmp/c.lock /opt/news/purge
Zainab, airline, DohaCrew rosters साठी Persistent timerssystemctl list-timers
Lucas, bank, FrankfurtOne-time change window jobat 23:30 -f change.sh
Priya, school ERP, Kolhapurरात्री 2 ला logs सह DB backup0 2 * * * /opt/erp/backup.sh >> /var/log/erp-backup.log 2>&1
Ken, logistics, Torontoप्रत्येक boot नंतर sync@reboot /opt/fleet/sync

15. नेहमीच्या errors आणि त्यांचे fixes

हे का लागतं?

हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.

हे काय आहे?

आधी नेमका message वाचा. मग खालच्या row शी जुळवा.

कसं करायचं (step by step)

दिसणारा errorका होतंFix कसा करायचा
/bin/sh: aws: command not found (in cron mail/log)cron PATH छोटाFull paths किंवा crontab मधे PATH.
which aws
no crontab for ec2-userअजून jobs नाहीतcrontab -e ने बनवा.
crontab -e
"/tmp/crontab.X":1: bad minute errors in crontab file, can't install.Fields ची संख्या किंवा value चुकीचीपाच fields मग command.
crontab -e
Job runs at the wrong hourServer time zone UTCtimedatectl तपासा; hour किंवा zone बदला.
timedatectl
Command cut off at % signcron मधे % म्हणजे newline\% असं escape.
date +\%F
Job in /etc/cron.daily never runsExecutable नाही किंवा नावात dotchmod 755 आणि .sh काढा.
run-parts --test /etc/cron.daily
Can't open display / permission denied in cronवेगळा user, GUI नाही, चुकीच्या permissionsयोग्य user; GUI tools टाळा.
sudo crontab -u shop -l
Can't open /var/run/atd.pid to signal atd. No atd running?atd service चालू नाहीatd सुरू.
sudo systemctl enable --now atd
Two copies of the job run togetherJob interval पेक्षा slowflock -n ने wrap.
flock -n /tmp/job.lock /opt/job
Timer is enabled but never firesService enable केली, timer नाही, किंवा daemon-reload नाहीTimer enable करा आणि list-timers.
sudo systemctl enable --now backup.timer

16. Troubleshooting step by step

हे का लागतं?

Scheduled job ने काम केलं नाही तर प्रत्येक दुवा सिद्ध करा: schedule, start, environment, output.

हे काय आहे?

वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.

कसं करायचं (step by step)

  1. Job installed आहे का?
crontab -l; ls /etc/cron.d
  1. cron चालू आहे का?
systemctl is-active crond
  1. cron ने सुरू केला का?
journalctl -u crond --since today --no-pager | tail
  1. cron च्या environment ने चालवा.
env -i SHELL=/bin/sh PATH=/usr/bin:/bin HOME=$HOME /bin/sh -c '/usr/local/bin/backup.sh'
  1. त्याचा output log.
tail -n 30 /var/log/backup.log
  1. Timers साठी पुढचा run आणि logs.
systemctl list-timers --all; journalctl -u backup -n 20

17. Lab 1: Logs आणि lock सह safe cron job

हे का लागतं?

दर minute ला चालणारा, output log करणारा, overlap न होणारा job लिहा, मग काढा.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

कसं करायचं (step by step)

  1. Crontab backup.
crontab -l > ~/cron.bak 2>/dev/null; echo saved

Output:

saved
  1. Job जोडा.
(crontab -l 2>/dev/null; echo '* * * * * flock -n /tmp/tick.lock /bin/date >> /tmp/tick.log 2>&1') | crontab -

Output:

(no output)
  1. Confirm.
crontab -l | tail -n1

Output:

* * * * * flock -n /tmp/tick.lock /bin/date >> /tmp/tick.log 2>&1
  1. 2 minutes थांबा आणि वाचा.
sleep 125; cat /tmp/tick.log

Output:

Sun Oct 25 13:01:01 IST 2026
Sun Oct 25 13:02:01 IST 2026
  1. Restore.
crontab ~/cron.bak 2>/dev/null || crontab -r; crontab -l

Output:

(your old jobs)

18. Lab 2: cron job ऐवजी systemd timer, आणि at

हे का लागतं?

दर 2 minutes चा timer बनवा, बघा, मग one-time at job schedule करून cancel.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

कसं करायचं (step by step)

  1. Service.
printf '[Service]\nType=oneshot\nExecStart=/usr/bin/logger -t tick hello\n' | sudo tee /etc/systemd/system/tick.service

Output:

[Service]
  1. Timer.
printf '[Timer]\nOnBootSec=1min\nOnUnitActiveSec=2min\n[Install]\nWantedBy=timers.target\n' | sudo tee /etc/systemd/system/tick.timer && sudo systemctl daemon-reload && sudo systemctl enable --now tick.timer

Output:

Created symlink ... tick.timer
  1. बघा.
systemctl list-timers tick.timer --no-pager

Output:

NEXT ... tick.timer tick.service
  1. at job मग cancel.
echo 'logger -t atlab hi' | at now + 30 minutes; atq; atrm $(atq | awk '{print $1}' | tail -n1); atq

Output:

job 7 at Sun Oct 25 13:35:00 2026
  1. साफ.
sudo systemctl disable --now tick.timer && sudo rm /etc/systemd/system/tick.* && sudo systemctl daemon-reload

Output:

Removed ... tick.timer

Ravindra Bagale's Tip

Before you trust a schedule, test it: systemd-analyze calendar for timers, and for cron write the line, then check the journal after the first run. And always redirect output; a cron job with no log is a job you cannot debug.

19. नेहमी विचारले जाणारे प्रश्न

प्र. cron की systemd timer?

नव्या server jobs साठी timers (logs, catch-up, limits). cron सोपा आणि सगळीकडे.

प्र. cron दर 30 seconds?

थेट नाही; किमान 1 minute. OnUnitActiveSec=30s timer.

प्र. रात्री 2 ला server बंद असेल तर?

cron skip करतो; anacron किंवा Persistent=true timers catch up.

प्र. cron कोणता time zone?

System zone (timedatectl). काही systems वर CRON_TZ=.

प्र. crontab कोण वापरू शकतं?

/etc/cron.allow आणि /etc/cron.deny ठरवतात.

प्र. crontab -r धोकादायक?

हो, सगळे jobs एकदम delete. आधी backup.

प्र. Day of month आणि day of week दोन्ही?

कोणतंही जुळलं तरी cron चालवतो.

प्र. Timer job आत्ता कसा?

systemctl start NAME.service.

20. मुलाखत प्रश्न आणि उत्तरं

Beginner level

प्र. पाच cron fields?

minute hour day-of-month month day-of-week.

प्र. Cron jobs list कसे?

crontab -l.

प्र. cron मधे दर 5 minutes?

*/5 * * * *.

प्र. रात्री 10 ला एकदा job?

echo cmd | at 22:00.

Mid level level

प्र. Script फक्त cron मधे fail का?

Minimal PATH आणि environment; full paths.

प्र. Overlapping runs कसे थांबवायचे?

flock -n lockfile cmd, किंवा timer.

प्र. /etc/cron.d files मधे वेगळं काय?

User field असतो.

प्र. systemd timer च्या दोन files?

NAME.service आणि NAME.timer.

Senior level

प्र. Downtime नंतर चुकलेले jobs?

Persistent=true timers किंवा anacron; jobs idempotent.

प्र. 100 servers वर cron?

RandomizedDelaySec किंवा jitter ने thundering herd टाळा, central logging, single-runner locks.

प्र. Nightly job चालला हे monitor कसं?

Job heartbeat ping किंवा metric लिहितो; run चुकला तर alert.

प्र. DST आणि cron?

Skip किंवा repeat तासातले jobs 0 किंवा 2 वेळा; servers वर UTC.

घरी करून बघा

  1. दर तासाला df -h चालवून ~/disk.log ला जोडणारी cron line लिहा. दोन तासांनी file तपासा.
  2. तोच job OnCalendar=hourly आणि Persistent=true सह systemd timer मधे बदला.

सराव Tasks

या scenario बद्दल

London Legal LLP हा लंडन मधला कायदा सेवा व्यवसाय आहे. Oliver Hughes त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे GBP मध्ये मोजले जातात आणि AWS resources eu-west-2 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं माझे cron jobs

का: Automation वेळ वाचवतं.

काय करायचं: तुमचा crontab दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं crontab edit

का: Automation वेळ वाचवतं.

काय करायचं: Edit करायला crontab उघडा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Pending at jobs

का: Automation वेळ वाचवतं.

काय करायचं: Pending at jobs list.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Timers list

का: Automation वेळ वाचवतं.

काय करायचं: Inactive सह सगळे systemd timers.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम दुसरा user

का: Automation वेळ वाचवतं.

काय करायचं: Root म्हणून deploy चा crontab list.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम cron चालू आहे का?

का: Automation वेळ वाचवतं.

काय करायचं: crond service status.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम cron चाललं का?

का: Automation वेळ वाचवतं.

काय करायचं: आजचा crond journal.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम One-time job

का: Automation वेळ वाचवतं.

काय करायचं: at ने /opt/report.sh 18:00 ला.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम at job cancel

का: Automation वेळ वाचवतं.

काय करायचं: at job 7 cancel.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम atd start

का: Automation वेळ वाचवतं.

काय करायचं: atd enable आणि start.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Timer start

का: Automation वेळ वाचवतं.

काय करायचं: backup.timer enable आणि start.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड सगळे jobs काढा

का: Automation वेळ वाचवतं.

काय करायचं: विचारून पूर्ण crontab काढा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Schedule check

का: Automation वेळ वाचवतं.

काय करायचं: "Mon..Fri 09:00" पुढे कधी ते तपासा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Job आत्ता चालवा

का: Automation वेळ वाचवतं.

काय करायचं: Test करायला backup.service लगेच.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Timer job logs

का: Automation वेळ वाचवतं.

काय करायचं: backup.service logs च्या शेवटच्या 20 lines.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Transient timer

का: Automation वेळ वाचवतं.

काय करायचं: systemd-run ने 30 minutes नी /opt/cleanup.sh.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

थोडक्यात सांगायचं तर

  1. पाच fields: minute hour dom month dow.
  2. crontab -e/-l/-r/-u user jobs manage.
  3. /etc/cron.d user field जोडतो; @reboot boot ला.
  4. Full paths, redirects आणि flock cron safe करतात.
  5. One-time jobs साठी at, atq, atrm.
  6. Timers = .service + .timer, OnCalendar, Persistent, list-timers.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

cron 5 fields. Schedule ने jobs. min hour day month weekday. Full paths, output log. तुमचे jobs edit.
उजळणी card: cron 5 fields · PNG download करा · Card page उघडा
systemd timers. Logs आणि catch-up सह cron. .timer .service start करतो. Persistent=true चुकलेले jobs. पुढचे runs.
उजळणी card: systemd timers · PNG download करा · Card page उघडा
cron vs systemd timer. crontab मधे एक line. / दोन unit files.
तुलना: cron vs systemd timer · PNG download करा · Card page उघडा
cron vs at. पुन्हा पुन्हा. / एकदाच.
तुलना: cron vs at · PNG download करा · Card page उघडा
Shell मधे चालतं, cron मधे नाही?. cron चा PATH छोटा. Full paths, output log. cron logs.
मुलाखत card: Shell मधे चालतं, cron मधे नाही? · PNG download करा · Card page उघडा
cron vs timer?. cron: सोपं, सगळीकडे. timer: logs, deps, catch-up. Timers list.
मुलाखत card: cron vs timer? · PNG download करा · Card page उघडा
at कधी?. एकदाचा future job. atq list, atrm cancel. 18:00 ला schedule.
मुलाखत card: at कधी? · PNG download करा · Card page उघडा
Jobs overlap थांबवा?. लांब run पुढच्या start ला भिडतो. cron मधे flock. Job lock.
मुलाखत card: Jobs overlap थांबवा? · PNG download करा · Card page उघडा

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