Ravindra BagaleCourses & study guides English

Linux Commands A-Z Part 2: chronyc, crontab, curl, cut, date, dd, df, diff, dig, dnf आणि du, Examples सह

हा Linux Commands A-Z reference चा Part 2: chronyc ते du. वेळ चुकलीय, server boot होत नाही, files compare करायच्या आहेत, jobs schedule करायचे आहेत, website किंवा DNS test करायचंय, आणि disk भरलीय, तेव्हा या commands लागतात. प्रत्येक command ला why, what, options table आणि खऱ्या output आणि अर्थासह step-by-step examples आहेत. cp आधीच सविस्तर covered आहे, म्हणून link केला आहे.

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

  • chronyc आणि date ने server time तपासा आणि fix करा
  • chroot ने बिघडलेली system दुरुस्त करा आणि dmesg ने kernel messages बघा
  • cmp, comm, diff आणि cksum ने files आणि lists compare
  • crontab ने repeating jobs सुरक्षित schedule
  • curl आणि dig ने websites आणि DNS test
  • df आणि du ने disk कोण भरतंय ते शोधा, आणि dnf ने RPM packages

1. रोजचं उदाहरण: रात्रीचा PMPML bus depot

हे का लागतं?

हडपसर depot वर night supervisor प्रत्येक bus चं घड्याळ depot च्या घड्याळाशी जुळतंय का बघतो, आजची route sheet कालच्या sheet शी compare करतो, सकाळी 5 च्या departures schedule करतो, routes चालू आहेत का ते control room ला फोन करून confirm करतो, आणि morning rush आधी diesel tank किती भरलाय ते बघतो.

हे काय आहे?

chronyc आणि date म्हणजे clock check. diff, comm आणि cmp म्हणजे route sheet comparison. crontab म्हणजे departure schedule. curl आणि dig म्हणजे control room ला फोन. df आणि du म्हणजे diesel tank level.

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

Server वरचा night checkClock sync मधेConfigs बदलले नाहीतJobs scheduledSite आणि DNS OKDisk मधे जागाKernel log clean
याच सहा checks, या part मधल्या commands ने.

2. Part 2 commands वापरून पाच minute चा health check

हे का लागतं?

एका command मधे खोल जाण्याआधी, खऱ्या check मधे त्या एकत्र कशा चालतात ते बघा.

हे काय आहे?

प्रत्येक प्रश्नाला एक command. प्रत्येक line manager किंवा on-call engineer विचारेल त्या एका गोष्टीचं उत्तर देते.

प्रश्नCommand
Clock बरोबर आहे का?chronyc tracking
Disk भरलीय का?df -h
Site up आहे का?curl -I
DNS बरोबर point करतं का?dig +short
Hardware errors आहेत का?dmesg -T -l err

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

  1. Check एकदम चालवा.
chronyc tracking | grep "System time"; df -h / | tail -1; curl -s -o /dev/null -w "%{http_code}\n" http://localhost/

Output:

System time     : 0.000040 seconds fast of NTP time
/dev/nvme0n1p1   20G  9.1G   11G  46% /
200

याचा अर्थ: Clock ठीक, disk 46%, web server 200 देतोय.

  1. Kernel check जोडा.
sudo dmesg -T -l err | tail -2

याचा अर्थ: Output नाही म्हणजे अलीकडे kernel errors नाहीत.

3. chronyc: Time sync तपासा आणि control करा

chronyc सविस्तर: server clock sync मधे आहे का?

हे का लागतं?

चुकीची वेळ TLS certificates, Kerberos आणि AD logins, cron jobs आणि log timelines तोडते. दोन servers मधे काही minutes चा फरक असला तरी debugging खूप कठीण होतं.

हे काय आहे?

chronyc हे chronyd चं control tool, म्हणजे RHEL, Rocky, Amazon Linux आणि बऱ्याच Ubuntu servers वरची NTP service. Server कोणते sources वापरतो, clock किती मागे-पुढे आहे ते दाखवतो, आणि step correction force करू शकतो.

नेहमीचे options

Optionकाय करतो
chronyc trackingसध्याचा offset आणि stratum.
chronyc sources -vExplanation header सह time sources.
chronyc sourcestatsप्रत्येक source चा drift आणि accuracy.
chronyc makestepClock आत्ता step करा.
chronyc activityकिती sources online.
chronyc -n sourcesNumeric, DNS lookups नाहीत.

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

  1. Service तपासा.
systemctl is-active chronyd

Output:

active

याचा अर्थ: chronyc उत्तर द्यायला chronyd चालू हवा.

  1. Sources बघा.
chronyc sources

Output:

MS Name/IP address         Stratum Poll Reach LastRx Last sample
^* 169.254.169.123               3   4   377    12   -21us[  -30us] +/-  512us

याचा अर्थ: ^* वापरात असलेला source. Reach 377 म्हणजे शेवटचे 8 polls चालले.

  1. किती फरक आहे?
chronyc tracking | grep -E "System time|Stratum"

Output:

Stratum         : 4
System time     : 0.000021 seconds slow of NTP time

याचा अर्थ: 21 microseconds मागे: एकदम healthy.

  1. VM resume नंतर मोठा फरक fix.
sudo chronyc makestep

Output:

200 OK

याचा अर्थ: Clock हळूहळू न सरकता लगेच योग्य वेळेवर उडी मारतो.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Deccan मधली stock-broking firm chronyc tracking 100 ms पेक्षा जास्त offset दाखवेल तर alert करते, कारण trade timestamps अचूक हवेत.

4. chroot: दुसऱ्या root folder मधे shell

chroot सविस्तर: rescue mode मधून बिघडलेली system दुरुस्त

हे का लागतं?

Server boot होत नसेल, तर rescue disk सुरू करता, बिघडलेली root disk mount करता आणि तिचीच tools चालवावी लागतात, जसं passwd, grub2-install किंवा dracut. chroot हे करू देतो.

हे काय आहे?

chroot एक command (default ला shell) एका वेगळ्या folder ला / मानून चालवतो. आतले programs फक्त तेच tree बघतात. Root साठी हे security sandbox नाही; containers namespaces वापरतात.

नेहमीचे options

Optionकाय करतो
chroot /mnt/sysimage/mnt/sysimage ला root मानून shell.
chroot /sysrootrd.break root password reset मधे वापर.
chroot DIR cmdआत एक command.
mount --bind /dev DIR/devChroot ला खरे devices.
exitChroot मधून बाहेर.

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

  1. बिघडलेलं root mount.
mount /dev/vda4 /mnt/sys

याचा अर्थ: बिघडलेली system आता एक folder.

  1. Special filesystems bind.
for d in dev proc sys; do mount --bind /$d /mnt/sys/$d; done

याचा अर्थ: आतल्या tools ना /dev, /proc आणि /sys लागतात.

  1. आत जा.
chroot /mnt/sys

Output:

[root@rescue /]#

याचा अर्थ: आता तुम्ही बिघडलेल्या server च्या "आत" आहात.

  1. initramfs परत build.
dracut -f --regenerate-all

याचा अर्थ: "cannot find root" सारखे बरेच boot errors fix होतात.

  1. बाहेर पडा आणि reboot.
exit; reboot

याचा अर्थ: Server दुरुस्त files सह boot होतो.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Talawade मधला data-centre engineer disk बदलल्यानंतर boot न होणाऱ्या server वर rescue ISO मधून chroot वापरून GRUB परत install करतो.

5. cksum: CRC checksum आणि size

cksum सविस्तर: झटपट CRC checks

हे का लागतं?

Servers मधे मोठी file copy केल्यानंतर काही बदललं नाही ना याची झटपट खात्री हवी. cksum प्रत्येक Unix system वर असतो, अगदी जुन्या सुद्धा.

हे काय आहे?

cksum CRC-32 checksum, bytes मधली size आणि file नाव print करतो. CRC accidental corruption पकडतो पण जाणूनबुजून केलेला बदल नाही; security साठी sha256sum वापरा. नवीन coreutils -a sha256 पण support करतात.

नेहमीचे options

Optionकाय करतो
cksum fCRC आणि size.
cksum a bअनेक files.
cksum -a sha256 fSHA-256 (coreutils 9+).
cksum -a md5 fMD5.
cksum --check sumsList verify (-a सह).

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

  1. File चा checksum.
cksum backup.tar

Output:

2741519874 3221225472 backup.tar

याचा अर्थ: CRC value, मग bytes मधली size, मग नाव.

  1. दुसऱ्या server वरची copy तपासा.
ssh dr01 cksum /backup/backup.tar

Output:

2741519874 3221225472 /backup/backup.tar

याचा अर्थ: तोच CRC आणि size: copy ठीक.

  1. उपलब्ध असेल तर SHA-256.
cksum -a sha256 backup.tar

Output:

SHA256 (backup.tar) = 9f2c...e1

याचा अर्थ: त्याच tool ने मजबूत hash.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Pune मधलं government records office प्रत्येक रात्रीच्या copy नंतर scanned archives चा cksum तपासतं.

6. clear: Terminal screen साफ

clear सविस्तर: स्वच्छ screen आणि reset

हे का लागतं?

Demos, screen-shares किंवा लांब debugging मधे गोंधळलेली screen महत्त्वाचा output लपवते. कधी binary output terminal तोडतो आणि junk characters दिसतात.

हे काय आहे?

clear terminal codes वापरून दिसणारी screen साफ करतो. bash मधे Ctrl+L तेच करतो. Binary file cat केल्यावर garbage दाखवणारा terminal reset परत सुरू करतो.

नेहमीचे options

Optionकाय करतो
clearScreen साफ.
Ctrl+Lbash मधला shortcut.
clear -xScrollback ठेवा.
resetबिघडलेला terminal fix.
tput resetReset ची दुसरी पद्धत.

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

  1. Demo आधी साफ.
clear

याचा अर्थ: Prompt वर जातो.

  1. चुकून terminal बिघडवा.
cat /usr/bin/ls

Output:

ELF>...@...(garbage)

याचा अर्थ: Binary bytes terminal settings बदलतात.

  1. Fix करा.
reset

याचा अर्थ: परत normal letters. Type केलेलं दिसत नसलं तरी type करा.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: शिवाजीनगर institute मधला trainer examples मधे Ctrl+L दाबतो, म्हणजे students ना फक्त पुढची command दिसते.

7. cmp: दोन files byte by byte compare

cmp सविस्तर: दोन files byte-identical आहेत का?

हे का लागतं?

Images, firmware किंवा archives सारख्या binary files साठी diff उपयोगी नाही. फक्त त्या सारख्या आहेत का आणि पहिला फरक कुठे ते हवं.

हे काय आहे?

cmp दोन files byte by byte compare करतो. पहिला फरक print करून exit 1, किंवा जुळल्या तर काहीच print न करता exit 0. Exit code 2 म्हणजे error. म्हणून scripts साठी perfect.

नेहमीचे options

Optionकाय करतो
cmp a bपहिला फरक.
cmp -s a bSilent, फक्त exit code.
cmp -l a bप्रत्येक वेगळा byte list.
cmp -n 100 a bपहिले 100 bytes compare.
cmp -i 10 a bआधी 10 bytes skip.

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

  1. दोन builds compare.
cmp app-v1.bin app-v2.bin

Output:

app-v1.bin app-v2.bin differ: byte 4097, line 12

याचा अर्थ: Byte 4097 पासून फरक.

  1. Script मधे वापरा.
cmp -s new.conf /etc/app.conf || echo "config changed"

Output:

config changed

याचा अर्थ: -s काही print करत नाही; exit code logic चालवतो.

  1. Exit code थेट तपासा.
cmp -s a.png a-copy.png; echo $?

Output:

0

याचा अर्थ: 0 म्हणजे एकसारख्या.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Bhosari मधली embedded team devices flash करण्याआधी firmware images cmp -s ने तपासते.

8. column: Text नीट columns मधे

column सविस्तर: गोंधळलेला output नीट table मधे

हे का लागतं?

CSV files आणि /etc/passwd सारख्या colon-separated files screen वर वाचायला कठीण असतात. column त्यांना ओळीत लावतो, म्हणजे table सारखं वाचता येतं.

हे काय आहे?

column -t table बनवतो, column widths अंदाजाने ठरवतो. -s input separator set करतो. नवीन util-linux versions मधे output separator साठी -o, headers साठी -N आणि JSON साठी -J आहेत.

नेहमीचे options

Optionकाय करतो
column -tTable बनवा.
column -t -s,Comma separated input.
column -t -s: Colon separated input.
column -t -N A,B,CHeader नावं जोडा.
column -t -J -N a,bJSON output.
column -t -o " | "Output separator.

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

  1. CSV नीट वाचा.
column -t -s, sales.csv | head -3

Output:

date        city    amount
2026-10-01  Pune    1000
2026-10-01  Nashik  450

याचा अर्थ: Columns आता ओळीत.

  1. /etc/passwd table म्हणून.
head -3 /etc/passwd | column -t -s:

Output:

root    x  0  0  root    /root     /bin/bash
bin     x  1  1  bin     /bin      /sbin/nologin

याचा अर्थ: प्रत्येक field ला स्वतःचा column.

  1. mount output नीट.
mount | column -t | head -2

Output:

proc   on  /proc  type  proc   (rw,nosuid)
sysfs  on  /sys   type  sysfs  (rw,nosuid)

याचा अर्थ: Space-separated output पण चालतो.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Kalyani Nagar मधली retail analytics team database मधे load करण्याआधी CSV exports column -t ने बघते.

9. comm: दोन sorted files line by line compare

comm सविस्तर: फक्त A मधे, फक्त B मधे, की दोन्हीत

हे का लागतं?

दोन lists आहेत, जसं दोन servers वरचे users किंवा upgrade आधी आणि नंतरचे packages, आणि काय missing किंवा added ते बघायचंय.

हे काय आहे?

comm ला दोन sorted files लागतात. तो तीन columns print करतो: फक्त file 1 मधल्या lines, फक्त file 2 मधल्या lines, आणि दोन्हीतल्या lines. -1, -2 आणि -3 columns लपवतात.

नेहमीचे options

Optionकाय करतो
comm a bतीन columns.
comm -12 a bफक्त दोन्हीतल्या lines.
comm -23 a bफक्त a मधे.
comm -13 a bफक्त b मधे.
comm <(sort a) <(sort b)लगेच sort.
comm --check-order a bSorted नसेल तर warning.

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

  1. Sorted package lists save.
rpm -qa | sort > before.txt

याचा अर्थ: Upgrade आधीचा snapshot.

  1. Upgrade नंतर परत save.
rpm -qa | sort > after.txt

याचा अर्थ: दुसरा snapshot.

  1. फक्त नवी versions.
comm -13 before.txt after.txt | head -2

Output:

kernel-5.14.0-427.el9.x86_64
openssl-3.0.7-27.el9.x86_64

याचा अर्थ: फक्त after.txt मधल्या lines.

  1. दोन्ही servers वरचे users.
comm -12 <(cut -d: -f1 /etc/passwd | sort) <(ssh web02 cut -d: -f1 /etc/passwd | sort)

Output:

arjun
priya
root

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

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Ganeshkhind मधली university IT team LDAP मधे आहेत पण lab servers वर नाहीत असे student accounts comm ने शोधते.

10. crontab: Repeating jobs schedule

crontab सविस्तर: repeating jobs सुरक्षित schedule

हे का लागतं?

Backups, report emails, log clean-up आणि certificate renewals कोणीही button न दाबता दररोज रात्री किंवा दर तासाला चालले पाहिजेत.

हे काय आहे?

crontab cron daemon (crond) वाचत असलेला per-user table edit करतो. प्रत्येक line मधे पाच time fields (minute, hour, day of month, month, day of week) आणि command असते. Cron छोट्या PATH सह आणि terminal शिवाय चालतो, म्हणून full paths वापरा आणि output log करा.

नेहमीचे options

Optionकाय करतो
crontab -eतुमचा table edit.
crontab -lतुमचा table list.
crontab -rतुमचा table काढा (जपून).
crontab -u user -lदुसरा user (root).
crontab fileFile मधून install.
*/15 * * * *दर 15 minutes.
0 2 * * 1-5Weekdays ला रात्री 2.
@rebootBoot वर एकदा.

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

  1. सध्याचे jobs.
crontab -l

Output:

no crontab for arjun

याचा अर्थ: अजून काही schedule नाही.

  1. रात्री 1:30 ला backup जोडा.
crontab -e
30 1 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Output:

crontab: installing new crontab

याचा अर्थ: minute 30, hour 1, दररोज. Output आणि errors log मधे.

  1. Save झालं का बघा.
crontab -l

Output:

30 1 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

याचा अर्थ: Line तुमच्या table मधे आहे.

  1. Cron ने चालवलं का बघा.
sudo grep backup.sh /var/log/cron | tail -1

Output:

Oct 26 01:30:01 web01 CROND[5512]: (arjun) CMD (/usr/local/bin/backup.sh ...)

याचा अर्थ: RHEL वर run चा पुरावा. Ubuntu वर journalctl -u cron.

  1. Edit करण्याआधी table backup.
crontab -l > ~/cron.bak

याचा अर्थ: कोणी crontab -r चालवलं तर crontab ~/cron.bak ने परत आणता येतं.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: बुधवार पेठेतलं newspaper दररोज सकाळी 5 ला e-paper PDF crontab ने publish करतं.

11. curl: Web servers आणि APIs शी बोला

curl सविस्तर: terminal मधून websites आणि APIs test

हे का लागतं?

Site up आहे का? कोणता status code? Certificate valid आहे का? API योग्य JSON देतो का? curl हे सगळं server वरूनच सांगतो, जिथे तुम्ही बहुतेक debug करता.

हे काय आहे?

curl HTTP, HTTPS, FTP आणि अजून protocols वर URLs ने data transfer करतो. Default ला body print करतो. Options headers जोडतात, JSON पाठवतात, redirects follow करतात, timings दाखवतात किंवा files save करतात.

नेहमीचे options

Optionकाय करतो
curl URLBody print.
curl -I URLफक्त headers (HEAD).
curl -sSSilent पण errors दाखवा.
curl -LRedirects follow.
curl -o file URLFile मधे save.
curl -X POST -H "Content-Type: application/json" -d @b.jsonJSON पाठवा.
curl -u user:passBasic auth.
curl -kTLS checks skip (फक्त testing).
curl -w "%{http_code}"निवडलेल्या values print.
curl --resolve host:443:IPDNS बदलाआधी server test.

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

  1. Headers तपासा.
curl -I https://example.com

Output:

HTTP/2 200
content-type: text/html; charset=UTF-8

याचा अर्थ: 200 म्हणजे OK. Headers type आणि server details दाखवतात.

  1. फक्त status code.
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/health

Output:

200

याचा अर्थ: Scripts आणि health checks साठी perfect.

  1. प्रत्येक step चा वेळ.
curl -s -o /dev/null -w "dns=%{time_namelookup} connect=%{time_connect} total=%{time_total}\n" https://example.com

Output:

dns=0.004 connect=0.021 total=0.183

याचा अर्थ: Slowness कुठे आहे ते: DNS, connect की server.

  1. JSON API call.
curl -sS -X POST -H "Content-Type: application/json" -d '{"sku":"A1","qty":2}' http://localhost:8080/api/orders

Output:

{"id":1042,"status":"created"}

याचा अर्थ: API ने order 1042 बनवला.

  1. DNS बदलण्याआधी नवा server test.
curl -sI --resolve shop.example.com:443:10.0.5.20 https://shop.example.com | head -1

Output:

HTTP/2 200

याचा अर्थ: curl 10.0.5.20 शी बोलतो पण TLS साठी खरं नाव वापरतो.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Koregaon Park मधलं food-delivery startup slow payment APIs पकडायला दर minute curl -w checks चालवतं.

12. cut: Lines मधून columns किंवा characters काढा

cut सविस्तर: columns आणि characters निवडा

हे का लागतं?

बऱ्याचदा प्रत्येक line मधून फक्त एक field हवं असतं, जसं user names, IPs किंवा date. Fixed separators साठी cut हे सगळ्यात सोपं tool.

हे काय आहे?

cut एका character च्या delimiter (-d, default tab) ने fields (-f), किंवा characters (-c), किंवा bytes (-b) निवडतो. सलग अनेक spaces तो हाताळू शकत नाही; त्यासाठी awk वापरा.

नेहमीचे options

Optionकाय करतो
cut -d: -f1Field 1, colon separator.
cut -d, -f2,4Fields 2 आणि 4.
cut -d, -f3-Field 3 पासून शेवटपर्यंत.
cut -c1-10Characters 1 ते 10.
cut --complement -f22 सोडून सगळे fields.
cut -d, -f1 --output-delimiter=" "Output separator बदला.

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

  1. User names list.
cut -d: -f1 /etc/passwd | head -3

Output:

root
bin
daemon

याचा अर्थ: प्रत्येक line चा field 1.

  1. नाव आणि home folder.
cut -d: -f1,6 /etc/passwd | tail -2

Output:

arjun:/home/arjun
priya:/home/priya

याचा अर्थ: Output मधे colon राहतो.

  1. Log lines चा date भाग.
cut -c1-10 app.log | sort | uniq -c

Output:

  540 2026-10-25
  212 2026-10-26

याचा अर्थ: प्रत्येक दिवसाच्या log lines.

  1. Spaces वर cut का fail.
echo 'a   b' | cut -d' ' -f2

याचा अर्थ: अनेक spaces मुळे field 2 रिकामा. awk '{print $2}' b देतो.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Wakad मधली HR software team daily CSV attendance files मधून cut -d, -f1 ने employee ids काढते.

13. date: Date आणि time दाखवा किंवा format

date सविस्तर: dates दाखवा, format करा आणि calculate करा

हे का लागतं?

Backups आणि logs ना date असलेली नावं लागतात. Reports ना "काल" लागतो. Incidents मधे UTC आणि IST शेजारी हवे. date हे सगळं करतो.

हे काय आहे?

date system time zone मधे current date आणि time print करतो. + format string output ठरवते. GNU date -d yesterday आणि next monday सारखे शब्द समजतो. TZ एका command साठी zone बदलतो.

नेहमीचे options

Optionकाय करतो
dateआत्ता.
date +%F2026-10-26 format.
date +%Y%m%d-%H%MFile names साठी.
date -uUTC.
date -d yesterday +%Fकाल.
date -d "+7 days"एक आठवड्याने.
date +%s1970 पासूनचे seconds (epoch).
date -d @1761400000Epoch पासून normal date.
TZ=Asia/Kolkata dateदुसऱ्या zone मधली वेळ.

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

  1. साधी date.
date

Output:

Mon Oct 26 01:20:05 IST 2026

याचा अर्थ: Server zone मधे.

  1. Date असलेलं backup नाव.
tar czf "db-$(date +%F).tgz" db/ && ls db-*

Output:

db-2026-10-26.tgz

याचा अर्थ: नीट sort होतं आणि वाचायला सोपं.

  1. Report साठी काल.
date -d yesterday +%F

Output:

2026-10-25

याचा अर्थ: Maths ची गरज नाही.

  1. UTC आणि IST एकत्र.
date -u +%T; TZ=Asia/Kolkata date +%T

Output:

19:50:05
01:20:05

याचा अर्थ: IST म्हणजे UTC अधिक 5:30.

  1. Log मधला epoch date मधे.
date -d @1761400000

Output:

Sat Oct 25 19:16:40 IST 2025

याचा अर्थ: बरेच apps epoch seconds log करतात.

  1. Script मधल्या step चा वेळ.
s=$(date +%s); sleep 2; echo $(( $(date +%s) - s ))s

Output:

2s

याचा अर्थ: दोन epochs वजा करा.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Chakan मधली logistics firm प्रत्येक दिवसाच्या shipment export ला date +%F ने नाव देते, म्हणजे files दिवसानुसार sort होतात.

14. dd: Raw data block by block copy

dd सविस्तर: raw copies, test files आणि bootable USBs

हे का लागतं?

काही कामांना byte-for-byte copy लागते: ISO USB stick वर लिहिणे, disk clone करणे, exact size ची test file बनवणे, किंवा disk ची सुरुवात पुसणे. dd हे करतो, पण एक अक्षर चुकलं तरी disk नष्ट होऊ शकते, म्हणून नीट शिका.

हे काय आहे?

dd if= (input file) पासून of= (output file) पर्यंत bs= size च्या blocks मधे, count= वेळा copy करतो. Filesystems ची पर्वा करत नाही. status=progress progress दाखवतो. conv=fsync data disk पर्यंत पोहोचतो याची खात्री करतो.

नेहमीचे options

Optionकाय करतो
if=FILEInput.
of=FILEOutput (हे दोनदा तपासा).
bs=4MBlock size.
count=NBlocks ची संख्या.
status=progressProgress दाखवा.
conv=fsyncशेवटी disk वर flush.
oflag=directCache bypass (speed tests साठी).
skip=N / seek=NInput / output blocks skip.

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

  1. 100 MB test file बनवा.
dd if=/dev/zero of=test.img bs=1M count=100 status=progress

Output:

104857600 bytes (105 MB, 100 MiB) copied, 0.12 s, 870 MB/s

याचा अर्थ: प्रत्येकी 1 MiB चे 100 blocks.

  1. Disk write speed अंदाजे.
dd if=/dev/zero of=/data/t bs=1M count=1024 oflag=direct

Output:

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 4.2 s, 256 MB/s

याचा अर्थ: oflag=direct RAM cache skip करतो, म्हणून number disk च्या जवळ.

  1. आधी USB stick शोधा.
lsblk -d -o NAME,SIZE,MODEL

Output:

sda  476G Samsung SSD
sdb   15G SanDisk Ultra

याचा अर्थ: sdb म्हणजे 15 GB USB stick. कधीही अंदाज लावू नका.

  1. त्यावर ISO लिहा.
sudo dd if=Rocky-9.iso of=/dev/sdb bs=4M status=progress conv=fsync

Output:

2.1 GB copied, 140 s, 15 MB/s

याचा अर्थ: sdb1 सारख्या partition वर नाही, पूर्ण device वर लिहितो.

  1. Disk चा पहिला MiB (partition table) backup.
sudo dd if=/dev/vda of=vda-head.bin bs=1M count=1

Output:

1048576 bytes copied

याचा अर्थ: Partition काम आधी छोटी safety copy.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: नारायण पेठेतलं hardware shop customers साठी dd ने Linux installer USBs लिहितं, नेहमी आधी lsblk बघून.

15. df: प्रत्येक filesystem ची free disk space

df सविस्तर: free space, inodes आणि types

हे का लागतं?

भरलेली disk databases, logging आणि SSH logins सुद्धा थांबवते. कोणी "server slow आहे" किंवा "app लिहू शकत नाही" म्हटलं की पहिली command df.

हे काय आहे?

df प्रत्येक mounted filesystem ची size, used, available, use percent आणि mount point दाखवतो. -h human units देतो. -i inodes दाखवतो, जे space असूनही संपू शकतात. -T filesystem type जोडतो.

नेहमीचे options

Optionकाय करतो
df -hHuman readable.
df -hTType सह.
df -iInodes.
df -h /var/var असलेला filesystem.
df -x tmpfs -x devtmpfsMemory filesystems लपवा.
df --output=target,pcentColumns निवडा.

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

  1. Overview.
df -h

Output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p1   20G   18G  2.0G  91% /
/dev/nvme1n1    100G   40G   60G  40% /data

याचा अर्थ: Root 91% भरलाय; 100 होण्याआधी काम करा.

  1. Type सह फक्त खऱ्या disks.
df -hT -x tmpfs -x devtmpfs

Output:

/dev/nvme0n1p1 xfs 20G 18G 2.0G 91% /

याचा अर्थ: Memory filesystems लपले.

  1. Inodes भरले?
df -i /var

Output:

Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda3 655360 655360 0 100% /var

याचा अर्थ: Space असेल, पण नवी file बनत नाही. सहसा लाखो छोट्या files.

  1. Script साठी use percent.
df --output=pcent / | tail -1 | tr -dc 0-9

Output:

91

याचा अर्थ: फक्त number, alert check साठी तयार.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Erandwane मधली hospital PACS team image store वर दर तासाला df बघते, कारण भरलेली disk X-ray uploads थांबवते.

16. diff: Files मधले फरक

diff सविस्तर: दोन files मधे काय बदललं

हे का लागतं?

Upgrade नंतर किंवा colleague च्या बदलानंतर config मधे नेमकं काय बदललं ते माहीत हवं. diff ते line by line दाखवतो आणि share करता येतील असे patches बनवतो.

हे काय आहे?

diff दोन text files compare करतो. Default format < आणि > वापरतो. -u git आणि patch वापरतात तो unified format देतो, काढलेल्या lines साठी - आणि जोडलेल्या साठी +. -r folders compare करतो. Exit code 0 म्हणजे सारख्या, 1 म्हणजे वेगळ्या.

नेहमीचे options

Optionकाय करतो
diff a bDefault format.
diff -u a bUnified format.
diff -y a bशेजारी शेजारी.
diff -r d1 d2Folders compare.
diff -q d1 d2फक्त कोणत्या files वेगळ्या.
diff -w a bSpaces ignore.
diff -i a bCase ignore.
diff <(cmd1) <(cmd2)Command outputs compare.

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

  1. Config चा unified diff.
diff -u nginx.conf.bak /etc/nginx/nginx.conf

Output:

--- nginx.conf.bak
+++ /etc/nginx/nginx.conf
@@ -12 +12 @@
-    worker_connections 768;
+    worker_connections 4096;

याचा अर्थ: एक line बदलली: 768 चे 4096 झाले.

  1. पटकन वाचायला शेजारी शेजारी.
diff -y --width=60 a.txt b.txt

Output:

port=80        |  port=8080
user=web          user=web

याचा अर्थ: | म्हणजे बदललेली line.

  1. दोन releases मधे कोणत्या files वेगळ्या?
diff -rq release-41/ release-42/

Output:

Files release-41/app.py and release-42/app.py differ
Only in release-42/: migrate.sql

याचा अर्थ: Folders मधला झटपट summary.

  1. दोन servers चे configs compare.
diff <(ssh web01 cat /etc/app.conf) <(ssh web02 cat /etc/app.conf)

Output:

3c3
< threads=8
---
> threads=4

याचा अर्थ: web02 कमी threads चालवतो. Slowness चं कारण हेच.

  1. Patch बनवा आणि लावा.
diff -u old.conf new.conf > fix.patch && patch old.conf < fix.patch

Output:

patching file old.conf

याचा अर्थ: old.conf आता new.conf सारखी.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Yerawada मधली insurance company change tickets मधे diff -u वापरते, म्हणजे reviewers ना कोणत्या config lines बदलतात ते नेमकं दिसतं.

17. dig: DNS records query

dig सविस्तर: DNS ला नेमकं हवं ते विचारा

हे का लागतं?

"It is always DNS" हा admins मधला joke आहे कारण बरेच outages DNS problems असतात. dig DNS server नेमकं काय उत्तर देतो, कोणता record, आणि तो किती वेळ cache राहील ते दाखवतो.

हे काय आहे?

dig (bind-utils किंवा dnsutils मधून) DNS queries पाठवतो. नाव, record type (A, AAAA, MX, CNAME, TXT, NS) आणि @ ने server तुम्ही निवडता. +short output छोटा करतो; +trace root servers पासून chain follow करतो.

नेहमीचे options

Optionकाय करतो
dig nameपूर्ण details सह A record.
dig +short nameफक्त उत्तर.
dig name MXMail servers.
dig name TXTTXT records (SPF, verification).
dig @8.8.8.8 nameविशिष्ट server ला विचारा.
dig -x IPReverse lookup.
dig +trace nameRoot पासून follow.
dig +noall +answer nameफक्त answer section.

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

  1. झटपट उत्तर.
dig +short example.com

Output:

93.184.215.14

याचा अर्थ: नाव कोणत्या IP ला point करतं.

  1. TTL बघा.
dig +noall +answer example.com

Output:

example.com.  3600  IN  A  93.184.215.14

याचा अर्थ: 3600 seconds: resolvers हे एक तासापर्यंत cache करतात.

  1. Mail servers तपासा.
dig +short gmail.com MX

Output:

5 gmail-smtp-in.l.google.com.
10 alt1.gmail-smtp-in.l.google.com.

याचा अर्थ: कमी number = जास्त priority.

  1. तुमचा DNS public DNS शी compare.
dig +short shop.example.in; dig +short @1.1.1.1 shop.example.in

Output:

10.0.5.10
203.0.113.20

याचा अर्थ: Internal DNS private IP देतो; public DNS public. Split DNS साठी normal.

  1. Reverse lookup.
dig +short -x 8.8.8.8

Output:

dns.google.

याचा अर्थ: IP कोणत्या नावाचा.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Hinjewadi मधली e-commerce team site नव्या load balancer वर नेल्यावर लगेच अनेक resolvers विरुद्ध dig तपासते.

18. dirname: Path चा folder भाग

dirname सविस्तर: path चा folder भाग

हे का लागतं?

Scripts ना बऱ्याचदा file कोणत्या folder मधे आहे ते लागतं, उदा. आधी तो बनवायला किंवा script शेजारच्या files शोधायला.

हे काय आहे?

dirname path चा शेवटचा भाग काढून बाकी print करतो. Slash नसेल तर dot print करतो. basename सारखं फक्त text वर काम करतो. Bash मधे ${p%/*}.

नेहमीचे options

Optionकाय करतो
dirname PATHFolder भाग.
dirname a/b c/dअनेक paths.
dirname -zशेवटी NUL.
"$(dirname "$0")"चालू script चा folder.
${p%/*}Pure bash पद्धत.

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

  1. साधं.
dirname /var/log/nginx/access.log

Output:

/var/log/nginx

याचा अर्थ: File नाव काढलं.

  1. Slash नाही.
dirname notes.txt

Output:

.

याचा अर्थ: Dot म्हणजे current folder.

  1. Script शेजारच्या files.
cd "$(dirname "$0")" && ls

Output:

deploy.sh  config.env

याचा अर्थ: Script कुठूनही चालते.

  1. लिहिण्याआधी parent बनवा.
out=/srv/reports/2026/10/sales.csv; mkdir -p "$(dirname "$out")"

याचा अर्थ: File save होण्याआधी folder tree तयार.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Pune मधल्या pharma company ची reporting script प्रत्येक report लिहिण्याआधी dirname वापरून month folders बनवते.

19. dmesg: Kernel messages वाचा

dmesg सविस्तर: disks, memory आणि hardware बद्दल kernel messages

हे का लागतं?

Disk fail झाली, USB device जोडलं, OOM killer ने process kill केली किंवा network card reset झालं, की kernel message लिहितो. तो dmesg मधे वाचता येतो.

हे काय आहे?

dmesg kernel ring buffer print करतो. -T वाचता येणारे times, -l level नुसार filter, -w नवे messages येईपर्यंत थांबतो. बऱ्याच systems वर normal users ना sudo लागतं. journalctl -k persistence सह तोच kernel log दाखवतो.

नेहमीचे options

Optionकाय करतो
dmesg -THuman times.
dmesg -l err,warnErrors आणि warnings.
dmesg -wनवे messages follow.
dmesg -Hसुंदर, paged output.
dmesg | grep -i oomOOM kills शोधा.
dmesg -cPrint मग clear (root).
journalctl -k -b -1मागच्या boot चा kernel log.

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

  1. अलीकडचे errors.
sudo dmesg -T -l err,warn | tail -3

Output:

[Mon Oct 26 00:12:01 2026] EXT4-fs warning (device nvme1n1): ext4_end_bio: I/O error 10

याचा अर्थ: I/O errors म्हणजे बहुतेक fail होणारी disk.

  1. माझी Java process का मेली?
sudo dmesg -T | grep -i "killed process"

Output:

[Mon Oct 26 00:40:11 2026] Out of memory: Killed process 2211 (java) total-vm:8123456kB

याचा अर्थ: Kernel OOM killer ने थांबवली; server ची RAM संपली.

  1. Disk जोडताना बघा.
sudo dmesg -wT

Output:

[...] sd 2:0:0:0: [sdb] 31457280 512-byte logical blocks: (16.1 GB/15.0 GiB)

याचा अर्थ: नवी disk sdb. थांबायला Ctrl+C.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Magarpatta मधला cloud support engineer customer "app आपोआप restart होतो" म्हणाला की dmesg मधे OOM kills बघतो.

20. dnf: RHEL, Fedora, Amazon Linux वर packages

dnf सविस्तर: RHEL, Rocky, Fedora आणि Amazon Linux 2023 वर packages

हे का लागतं?

Indian companies आणि banks मधलं बहुतेक enterprise Linux RHEL किंवा RHEL rebuild असतं. Software install, CVEs patch, वाईट updates rollback आणि कोणता package file देतो ते शोधणं, सगळं dnf ने.

हे काय आहे?

dnf dependencies resolve करतो आणि /etc/yum.repos.d/ मधल्या repositories मधून RPM packages install करतो. Undo करता येईल अशी history ठेवतो. RHEL 8 आणि 9 वर yum म्हणजे dnf ची link.

नेहमीचे options

Optionकाय करतो
dnf install -y pkgInstall.
dnf remove pkgRemove.
dnf upgradeसगळं upgrade.
dnf check-updateकाय upgrade होऊ शकतं.
dnf updateinfo list --securitySecurity updates.
dnf search wordSearch.
dnf info pkgPackage details.
dnf provides /pathFile कोणत्या package ची.
dnf historyमागचे transactions.
dnf history undo NTransaction N undo.
dnf repolistEnabled repositories.
dnf module listModule streams (RHEL 8/9).

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

  1. कोणते repos चालू?
dnf repolist

Output:

repo id        repo name
appstream      Rocky Linux 9 - AppStream
baseos         Rocky Linux 9 - BaseOS

याचा अर्थ: RHEL-family चे दोन मुख्य repos.

  1. Web server install.
sudo dnf install -y httpd

Output:

Installed:
  httpd-2.4.57-11.el9.x86_64 ...
Complete!

याचा अर्थ: Dependencies आपोआप आल्या.

  1. Missing command चा package शोधा.
dnf provides */bin/dig

Output:

bind-utils-32:9.16.23-18.el9.x86_64 : Utilities for querying DNS name servers

याचा अर्थ: dig साठी bind-utils install करा.

  1. फक्त security fixes.
sudo dnf upgrade --security -y

Output:

Upgraded: openssl-1:3.0.7-27.el9 ...

याचा अर्थ: झटपट CVE patching साठी चांगलं.

  1. वाईट बदल undo.
sudo dnf history | head -4 && sudo dnf history undo 14 -y

Output:

ID | Command line | Date and time | Action(s)
14 | install httpd | 2026-10-26 01:30 | Install

याचा अर्थ: Transaction 14 उलट झालं.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Pune मधलं bank data centre दर महिन्याला dnf upgrade --security ने RHEL servers patch करतं आणि rollback साठी dnf history ids change ticket मधे ठेवतं.

21. du: Folders किती space वापरतात

du सविस्तर: disk कोण खातंय?

हे का लागतं?

df सांगतो disk भरलीय. du सांगतो कोणता folder space वापरतोय, म्हणजे काय साफ करायचं किंवा हलवायचं ते कळतं.

हे काय आहे?

du files आणि folders ने वापरलेली space बेरीज करतो. -s प्रत्येक argument साठी एक total, -h human units, -d depth, -x एकाच filesystem वर राहतो. Delete झालेल्या पण अजून open files मोजल्या जात नाहीत, म्हणून df आणि du वेगळं दाखवू शकतात.

नेहमीचे options

Optionकाय करतो
du -sh dirdir चा total.
du -h -d1 dirएक level खोल.
du -xh -d1 /Root filesystem वरच राहा.
du -sh * | sort -hSize नुसार rank.
du -ah dirFiles पण.
du --exclude=*.isoPattern skip.
du -c a bGrand total.

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

  1. Folder चा total.
sudo du -sh /var/log

Output:

4.2G	/var/log

याचा अर्थ: Logs 4.2 GB.

  1. /var खालचे सगळ्यात मोठे folders.
sudo du -xh -d1 /var | sort -h | tail -4

Output:

310M	/var/cache
1.1G	/var/lib
4.2G	/var/log
5.7G	/var

याचा अर्थ: /var/log मोठा आहे.

  1. अजून एक level खोल.
sudo du -sh /var/log/* | sort -h | tail -2

Output:

600M	/var/log/journal
3.4G	/var/log/app

याचा अर्थ: App logs ना rotation हवं.

  1. सगळ्यात मोठ्या files.
sudo find /var/log -type f -size +500M -exec du -h {} + | sort -h

Output:

2.9G	/var/log/app/debug.log

याचा अर्थ: एक debug log 2.9 GB.

  1. df आणि du जुळत नाहीत?
sudo lsof +L1 | head -3

Output:

java 2211 app 12w REG 259,1 2147483648 0 1234 /var/log/app/old.log (deleted)

याचा अर्थ: Delete झालेली file अजून open; space मोकळी करायला process restart करा.

खालच्या tasks मधे सराव करा: सराव tasks

खरा वापर: Balewadi मधलं video-streaming startup transcoding server भरला की du -xh -d1 चालवतं, मग temp chunks साफ करतं.

22. या range मधल्या commands ज्या आधीच सविस्तर covered आहेत

हे का लागतं?

या commands चा पूर्ण why, what आणि how section आधीच्या chapter मधे आहे. इथे परत लिहिलं तर फक्त page लांब होईल.

हे काय आहे?

प्रत्येक link options, examples आणि output असलेला नेमका section उघडतो.

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

  • cp: Files आणि folders copy: -r, -i, -v आणि -p

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

हे का लागतं?

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

हे काय आहे?

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

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

Team आणि शहरते कसं वापरतातCommand
Aditya, broking, Deccan100 ms पेक्षा जास्त clock offset वर alertchronyc tracking
Swati, e-commerce, HinjewadiLoad balancer move नंतर DNS तपासतेdig +short @1.1.1.1 shop.example.in
Nikhil, payments, Koregaon Parkदर minute payment API calls time करतोcurl -s -o /dev/null -w "%{time_total}" URL
Rupali, bank DC, PuneRollback ids सह monthly RHEL patchingdnf upgrade --security -y
Omkar, video startup, BalewadiTranscoding disk कोण भरतंय ते शोधतोdu -xh -d1 / | sort -h
Neha, insurance, YerawadaChange tickets मधे config diffsdiff -u old.conf new.conf

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

हे का लागतं?

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

हे काय आहे?

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

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

दिसणारा errorका होतंFix कसा करायचा
506 Cannot talk to daemonchronyd चालू नाहीService सुरू करा.
systemctl enable --now chronyd
chroot: failed to run command '/bin/bash': No such file or directoryचुकीचा folder किंवा root disk mount नाहीआधी योग्य partition mount करा.
lsblk -f; ls /mnt/sys/bin/bash
comm: file 1 is not in sorted orderInput sorted नाहीदोन्ही inputs sort करा.
comm <(sort a) <(sort b)
Cron job runs by hand but not from cronCron ला छोटा PATH आणि env नाहीFull paths वापरा आणि output log करा.
PATH=/usr/local/bin:/usr/bin:/bin
curl: (60) SSL certificate problem: unable to get local issuer certificateCA bundle नाही किंवा server वर chain तुटलेलीChain fix करा; CA certificates update करा.
openssl s_client -connect host:443 -showcerts
curl: (7) Failed to connect to localhost port 8080: Connection refusedत्या port वर कोणी listen करत नाहीApp सुरू करा किंवा port तपासा.
ss -ltnp | grep 8080
cut: the delimiter must be a single character-d सोबत दोन charactersएक character वापरा किंवा awk.
awk -F'::' '{print $2}' f
date: invalid date 'yesterdy'-d text मधे typing चूकशब्द दुरुस्त करा.
date -d yesterday
dd: failed to open '/dev/sdb': Permission deniedRoot लागतोlsblk बघून sudo वापरा.
lsblk; sudo dd ...
No space left on device (but df shows free space)Inodes भरलेखूप छोट्या files असलेले folders शोधा.
df -i; du --inodes -d2 /var | sort -n | tail
;; connection timed out; no servers could be reachedDNS server पोहोचत नाही किंवा blockresolv.conf आणि port 53 तपासा.
cat /etc/resolv.conf; nc -vzu 8.8.8.8 53
Error: Failed to download metadata for repo 'appstream'Internet नाही, proxy किंवा खराब mirrorNetwork तपासा, मग cache clean.
dnf clean all; dnf makecache

25. Troubleshooting step by step

हे का लागतं?

Part 2 ची command नीट वागत नसेल तर या steps.

हे काय आहे?

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

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

  1. मागची service चालू आहे का (chronyd, crond)?
systemctl is-active chronyd crond
  1. Network पोहोचतं का?
ping -c2 8.8.8.8
  1. DNS चालतं का?
dig +short example.com
  1. Disk किंवा inode table भरली का?
df -h /; df -i /
  1. Kernel ने काही log केलं का?
sudo dmesg -T | tail -5
  1. अलीकडे काय बदललं?
sudo dnf history | head -5

26. Lab 1: भरलेली disk शोधा आणि fix करा

हे का लागतं?

Test folder भरा, df आणि du ने शोधा, मग साफ करा आणि automatic cleanup schedule करा.

हे काय आहे?

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

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

  1. मोठ्या test files बनवा.
mkdir -p /tmp/lab9 && for i in 1 2 3; do dd if=/dev/zero of=/tmp/lab9/f$i bs=1M count=200 status=none; done
  1. Disk बघा.
df -h /tmp

Output:

tmpfs 1.8G 600M 1.2G 33% /tmp
  1. Folder शोधा.
du -sh /tmp/* 2>/dev/null | sort -h | tail -1

Output:

600M	/tmp/lab9
  1. जुन्या files delete.
find /tmp/lab9 -name "f*" -mmin +0 -delete; du -sh /tmp/lab9

Output:

0	/tmp/lab9
  1. रात्रीचा cleanup schedule.
(crontab -l 2>/dev/null; echo "15 2 * * * find /tmp/lab9 -type f -mtime +1 -delete") | crontab -
  1. Confirm.
crontab -l | tail -1

Output:

15 2 * * * find /tmp/lab9 -type f -mtime +1 -delete

27. Lab 2: Website end to end तपासा

हे का लागतं?

Site चा DNS, connection timing, status code आणि TLS date तपासा, आणि दोन server configs compare करा.

हे काय आहे?

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

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

  1. DNS उत्तर आणि TTL.
dig +noall +answer example.org

Output:

example.org. 3600 IN A 93.184.215.14
  1. Status code.
curl -s -o /dev/null -w "%{http_code}\n" https://example.org

Output:

200
  1. Timing.
curl -s -o /dev/null -w "dns=%{time_namelookup} tls=%{time_appconnect} total=%{time_total}\n" https://example.org

Output:

dns=0.003 tls=0.090 total=0.170
  1. Certificate end date.
echo | openssl s_client -connect example.org:443 2>/dev/null | openssl x509 -noout -enddate

Output:

notAfter=Jan 15 23:59:59 2027 GMT
  1. दोन configs बनवा.
printf 'port=80\nthreads=8\n' > a.conf; printf 'port=80\nthreads=4\n' > b.conf
  1. Compare.
diff -u a.conf b.conf

Output:

-threads=8
+threads=4

Ravindra Bagale's Tip

Make two habits today. One: before any risky change, save a copy and later compare it with diff -u. Two: whenever you add a cron line, send its output to a log file. These two habits alone will save you during most late-night incidents.

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

प्र. df आणि du वेगळे का?

du delete झालेल्या पण open files बघू शकत नाही, आणि -x ने इतर mounts skip करतो. lsof +L1 तपासा.

प्र. cron की systemd timer?

दोन्ही चालतात. Timers journalctl मधे logs देतात आणि missed runs हाताळतात; cron सोपा आणि सगळीकडे.

प्र. curl -k safe आहे का?

फक्त testing साठी. Certificate checks बंद करतो.

प्र. dig की nslookup?

dig जास्त detail देतो आणि admins ला आवडतो. nslookup पुढच्या part मधे.

प्र. dd laptop disk खराब करू शकतो का?

हो, of= तिथे point करत असेल तर. नेहमी आधी lsblk तपासा.

प्र. yum गेला का?

RHEL 8 आणि 9 वर yum फक्त dnf ची link.

प्र. Cron job ला माझे variables का दिसत नाहीत?

Cron तुमचा .bashrc वाचत नाही. Variables crontab किंवा script मधे set करा.

प्र. cp कुठे?

वर आधीच covered commands खाली link.

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

Beginner level

प्र. Cron चे पाच fields?

Minute, hour, day of month, month, day of week.

प्र. Free disk space कशी तपासाल?

df -h.

प्र. फक्त HTTP headers कसे?

curl -I URL.

प्र. कालची date कशी?

date -d yesterday +%F.

Mid level level

प्र. Disk full पण du कमी दाखवतो. का?

Delete झालेली file अजून open; lsof +L1 ने शोधा आणि process restart करा.

प्र. कोणता DNS server उत्तर देतो?

dig name खाली SERVER: दाखवतो; dig @server name एक test करतो.

प्र. वाईट package update undo कसा?

dnf history मग dnf history undo ID.

प्र. chronyc makestep काय करतो?

Clock हळू न सरकवता लगेच step करतो.

Senior level

प्र. RHEL 9 वर root password हरवला. Steps?

rd.break, mount -o remount,rw /sysroot, chroot /sysroot, passwd, touch /.autorelabel.

प्र. DNS cutover आधी नवा server कसा test?

curl --resolve host:443:NEWIP https://host.

प्र. 200 servers वर backups साठी safe cron design.

Random delay, overlap टाळायला flock, logs, failure वर alert, आणि central check.

घरी करून बघा

  1. स्वतःच्या VM वर पाच minute चा health check चालवा आणि output आजच्या date च्या नावाने save करा.
  2. दर 5 minutes ला file मधे date लिहिणारा cron job जोडा; 15 minutes नंतर तपासा, मग काढा.
  3. रोज वापरता त्या तीन sites वर dig चालवा आणि त्यांचे TTL लिहा.

सराव Tasks

या scenario बद्दल

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

0 / 20

सोपं Numeric sources

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: DNS lookups शिवाय chrony source statistics list करा.

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

सोपं Numeric tracking

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: फक्त numeric addresses सह chrony tracking दाखवा.

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

सोपं File save

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: Redirects follow करत remote file नाव ठेवून https://example.com/a.tar.gz download करा.

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

सोपं पुढचा सोमवार

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: पुढच्या सोमवारची date YYYY-MM-DD मधे print करा.

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

सोपं फक्त warnings

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: Readable times सह फक्त warn level चे kernel messages दाखवा.

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

मध्यम फक्त पहिले bytes

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: disk1.img आणि disk2.img चे फक्त पहिले 512 bytes compare करा.

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

मध्यम फक्त दुसऱ्यात

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: old.txt शी compare करताना फक्त new.txt मधल्या lines दाखवा (दोन्ही sorted).

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

मध्यम दुसऱ्या user चा cron

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

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

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

मध्यम Basic auth

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: user admin आणि password Pune123 सह http://localhost:9000/api/health फक्त headers दाखवत call करा.

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

मध्यम एक field सोडून

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: emp.csv चे field 3 सोडून सगळे comma fields print करा.

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

मध्यम UTC ISO time

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: Current time UTC मधे seconds सह ISO 8601 मधे print करा.

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

मध्यम df columns निवडा

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: /home साठी human units मधे फक्त source, size आणि available columns दाखवा.

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

मध्यम Spacing ignore

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: सगळी white space ignore करून a.yml आणि b.yml unified format मधे compare करा.

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

मध्यम Name servers

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: example.org चे फक्त name servers list करा.

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

अवघड आत एक command

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: Shell न उघडता /mnt/sys मधे root user साठी passwd चालवा.

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

अवघड JSON table

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: space-separated users.txt name आणि uid column names सह JSON मधे बदला.

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

अवघड Weekend schedule

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: फक्त शनिवार आणि रविवार सकाळी 6:45 साठी cron time fields लिहा.

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

अवघड Blocks skip

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: disk.img मधून पहिले 10 MiB सोडून 1 MiB part.bin मधे copy करा.

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

अवघड एका transaction ची माहिती

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: dnf transaction 22 चे details दाखवा.

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

अवघड Inode hogs

का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.

काय करायचं: /var खाली एका level वर प्रत्येक folder चा inode count दाखवा.

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

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

  1. chronyc आणि date: वेळ.
  2. cmp, comm, diff, cksum: compare.
  3. crontab: पाच fields, full paths, output log.
  4. curl आणि dig: web आणि DNS checks.
  5. df vs du: free space vs कोण वापरतं.
  6. dnf history undo rollback करतो.

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

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

Disk भरली?. कोणतं filesystem. Inodes पण. सगळ्यात मोठे folders. Kernel errors.
उजळणी card: Disk भरली? · PNG download करा · Card page उघडा
Web service तपासा. DNS उत्तर. HTTP status. Timing. Clock sync मधे.
उजळणी card: Web service तपासा · PNG download करा · Card page उघडा
df vs du. Filesystem view. / File आणि folder view.
तुलना: df vs du · PNG download करा · Card page उघडा
diff vs cmp. Line by line. / Byte by byte.
तुलना: diff vs cmp · PNG download करा · Card page उघडा
df full पण du छोटं?. Delete केलेली file अजून open. शोधा. तो service restart करा.
मुलाखत card: df full पण du छोटं? · PNG download करा · Card page उघडा
dd धोकादायक का?. तो raw blocks लिहितो. चुकीचं of= disk पुसतो. आधी तपासा.
मुलाखत card: dd धोकादायक का? · PNG download करा · Card page उघडा
Cron job चालला नाही?. Cron चा PATH छोटा. Full paths आणि log वापरा. Log तपासा.
मुलाखत card: Cron job चालला नाही? · PNG download करा · Card page उघडा
Server वरून API test?. Headers दाखवा. HTTP errors वर fail. JSON पाठवा.
मुलाखत card: Server वरून API test? · PNG download करा · Card page उघडा

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