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)
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)
- 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 देतोय.
- 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 -v | Explanation header सह time sources. |
chronyc sourcestats | प्रत्येक source चा drift आणि accuracy. |
chronyc makestep | Clock आत्ता step करा. |
chronyc activity | किती sources online. |
chronyc -n sources | Numeric, DNS lookups नाहीत. |
कसं करायचं (step by step)
- Service तपासा.
systemctl is-active chronyd
Output:
active
याचा अर्थ: chronyc उत्तर द्यायला chronyd चालू हवा.
- 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 चालले.
- किती फरक आहे?
chronyc tracking | grep -E "System time|Stratum"
Output:
Stratum : 4
System time : 0.000021 seconds slow of NTP time
याचा अर्थ: 21 microseconds मागे: एकदम healthy.
- 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 /sysroot | rd.break root password reset मधे वापर. |
chroot DIR cmd | आत एक command. |
mount --bind /dev DIR/dev | Chroot ला खरे devices. |
exit | Chroot मधून बाहेर. |
कसं करायचं (step by step)
- बिघडलेलं root mount.
mount /dev/vda4 /mnt/sys
याचा अर्थ: बिघडलेली system आता एक folder.
- Special filesystems bind.
for d in dev proc sys; do mount --bind /$d /mnt/sys/$d; done
याचा अर्थ: आतल्या tools ना /dev, /proc आणि /sys लागतात.
- आत जा.
chroot /mnt/sys
Output:
[root@rescue /]#
याचा अर्थ: आता तुम्ही बिघडलेल्या server च्या "आत" आहात.
- initramfs परत build.
dracut -f --regenerate-all
याचा अर्थ: "cannot find root" सारखे बरेच boot errors fix होतात.
- बाहेर पडा आणि 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 f | CRC आणि size. |
cksum a b | अनेक files. |
cksum -a sha256 f | SHA-256 (coreutils 9+). |
cksum -a md5 f | MD5. |
cksum --check sums | List verify (-a सह). |
कसं करायचं (step by step)
- File चा checksum.
cksum backup.tar
Output:
2741519874 3221225472 backup.tar
याचा अर्थ: CRC value, मग bytes मधली size, मग नाव.
- दुसऱ्या server वरची copy तपासा.
ssh dr01 cksum /backup/backup.tar
Output:
2741519874 3221225472 /backup/backup.tar
याचा अर्थ: तोच CRC आणि size: copy ठीक.
- उपलब्ध असेल तर 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 | काय करतो |
|---|---|
clear | Screen साफ. |
Ctrl+L | bash मधला shortcut. |
clear -x | Scrollback ठेवा. |
reset | बिघडलेला terminal fix. |
tput reset | Reset ची दुसरी पद्धत. |
कसं करायचं (step by step)
- Demo आधी साफ.
clear
याचा अर्थ: Prompt वर जातो.
- चुकून terminal बिघडवा.
cat /usr/bin/ls
Output:
ELF>...@...(garbage)
याचा अर्थ: Binary bytes terminal settings बदलतात.
- 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 b | Silent, फक्त 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)
- दोन builds compare.
cmp app-v1.bin app-v2.bin
Output:
app-v1.bin app-v2.bin differ: byte 4097, line 12
याचा अर्थ: Byte 4097 पासून फरक.
- Script मधे वापरा.
cmp -s new.conf /etc/app.conf || echo "config changed"
Output:
config changed
याचा अर्थ: -s काही print करत नाही; exit code logic चालवतो.
- 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 -t | Table बनवा. |
column -t -s, | Comma separated input. |
column -t -s: | Colon separated input. |
column -t -N A,B,C | Header नावं जोडा. |
column -t -J -N a,b | JSON output. |
column -t -o " | " | Output separator. |
कसं करायचं (step by step)
- CSV नीट वाचा.
column -t -s, sales.csv | head -3
Output:
date city amount
2026-10-01 Pune 1000
2026-10-01 Nashik 450
याचा अर्थ: Columns आता ओळीत.
- /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.
- 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 b | Sorted नसेल तर warning. |
कसं करायचं (step by step)
- Sorted package lists save.
rpm -qa | sort > before.txt
याचा अर्थ: Upgrade आधीचा snapshot.
- Upgrade नंतर परत save.
rpm -qa | sort > after.txt
याचा अर्थ: दुसरा snapshot.
- फक्त नवी 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.
- दोन्ही 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 file | File मधून install. |
*/15 * * * * | दर 15 minutes. |
0 2 * * 1-5 | Weekdays ला रात्री 2. |
@reboot | Boot वर एकदा. |
कसं करायचं (step by step)
- सध्याचे jobs.
crontab -l
Output:
no crontab for arjun
याचा अर्थ: अजून काही schedule नाही.
- रात्री 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 मधे.
- Save झालं का बघा.
crontab -l
Output:
30 1 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
याचा अर्थ: Line तुमच्या table मधे आहे.
- 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.
- 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 URL | Body print. |
curl -I URL | फक्त headers (HEAD). |
curl -sS | Silent पण errors दाखवा. |
curl -L | Redirects follow. |
curl -o file URL | File मधे save. |
curl -X POST -H "Content-Type: application/json" -d @b.json | JSON पाठवा. |
curl -u user:pass | Basic auth. |
curl -k | TLS checks skip (फक्त testing). |
curl -w "%{http_code}" | निवडलेल्या values print. |
curl --resolve host:443:IP | DNS बदलाआधी server test. |
कसं करायचं (step by step)
- Headers तपासा.
curl -I https://example.com
Output:
HTTP/2 200
content-type: text/html; charset=UTF-8
याचा अर्थ: 200 म्हणजे OK. Headers type आणि server details दाखवतात.
- फक्त status code.
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/health
Output:
200
याचा अर्थ: Scripts आणि health checks साठी perfect.
- प्रत्येक 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.
- 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 बनवला.
- 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: -f1 | Field 1, colon separator. |
cut -d, -f2,4 | Fields 2 आणि 4. |
cut -d, -f3- | Field 3 पासून शेवटपर्यंत. |
cut -c1-10 | Characters 1 ते 10. |
cut --complement -f2 | 2 सोडून सगळे fields. |
cut -d, -f1 --output-delimiter=" " | Output separator बदला. |
कसं करायचं (step by step)
- User names list.
cut -d: -f1 /etc/passwd | head -3
Output:
root
bin
daemon
याचा अर्थ: प्रत्येक line चा field 1.
- नाव आणि home folder.
cut -d: -f1,6 /etc/passwd | tail -2
Output:
arjun:/home/arjun
priya:/home/priya
याचा अर्थ: Output मधे colon राहतो.
- Log lines चा date भाग.
cut -c1-10 app.log | sort | uniq -c
Output:
540 2026-10-25
212 2026-10-26
याचा अर्थ: प्रत्येक दिवसाच्या log lines.
- 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 +%F | 2026-10-26 format. |
date +%Y%m%d-%H%M | File names साठी. |
date -u | UTC. |
date -d yesterday +%F | काल. |
date -d "+7 days" | एक आठवड्याने. |
date +%s | 1970 पासूनचे seconds (epoch). |
date -d @1761400000 | Epoch पासून normal date. |
TZ=Asia/Kolkata date | दुसऱ्या zone मधली वेळ. |
कसं करायचं (step by step)
- साधी date.
date
Output:
Mon Oct 26 01:20:05 IST 2026
याचा अर्थ: Server zone मधे.
- Date असलेलं backup नाव.
tar czf "db-$(date +%F).tgz" db/ && ls db-*
Output:
db-2026-10-26.tgz
याचा अर्थ: नीट sort होतं आणि वाचायला सोपं.
- Report साठी काल.
date -d yesterday +%F
Output:
2026-10-25
याचा अर्थ: Maths ची गरज नाही.
- UTC आणि IST एकत्र.
date -u +%T; TZ=Asia/Kolkata date +%T
Output:
19:50:05
01:20:05
याचा अर्थ: IST म्हणजे UTC अधिक 5:30.
- Log मधला epoch date मधे.
date -d @1761400000
Output:
Sat Oct 25 19:16:40 IST 2025
याचा अर्थ: बरेच apps epoch seconds log करतात.
- 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=FILE | Input. |
of=FILE | Output (हे दोनदा तपासा). |
bs=4M | Block size. |
count=N | Blocks ची संख्या. |
status=progress | Progress दाखवा. |
conv=fsync | शेवटी disk वर flush. |
oflag=direct | Cache bypass (speed tests साठी). |
skip=N / seek=N | Input / output blocks skip. |
कसं करायचं (step by step)
- 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.
- 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 च्या जवळ.
- आधी USB stick शोधा.
lsblk -d -o NAME,SIZE,MODEL
Output:
sda 476G Samsung SSD
sdb 15G SanDisk Ultra
याचा अर्थ: sdb म्हणजे 15 GB USB stick. कधीही अंदाज लावू नका.
- त्यावर 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 वर लिहितो.
- 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 -h | Human readable. |
df -hT | Type सह. |
df -i | Inodes. |
df -h /var | /var असलेला filesystem. |
df -x tmpfs -x devtmpfs | Memory filesystems लपवा. |
df --output=target,pcent | Columns निवडा. |
कसं करायचं (step by step)
- 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 होण्याआधी काम करा.
- Type सह फक्त खऱ्या disks.
df -hT -x tmpfs -x devtmpfs
Output:
/dev/nvme0n1p1 xfs 20G 18G 2.0G 91% /
याचा अर्थ: Memory filesystems लपले.
- Inodes भरले?
df -i /var
Output:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda3 655360 655360 0 100% /var
याचा अर्थ: Space असेल, पण नवी file बनत नाही. सहसा लाखो छोट्या files.
- 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 b | Default format. |
diff -u a b | Unified format. |
diff -y a b | शेजारी शेजारी. |
diff -r d1 d2 | Folders compare. |
diff -q d1 d2 | फक्त कोणत्या files वेगळ्या. |
diff -w a b | Spaces ignore. |
diff -i a b | Case ignore. |
diff <(cmd1) <(cmd2) | Command outputs compare. |
कसं करायचं (step by step)
- 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 झाले.
- पटकन वाचायला शेजारी शेजारी.
diff -y --width=60 a.txt b.txt
Output:
port=80 | port=8080
user=web user=web
याचा अर्थ: | म्हणजे बदललेली line.
- दोन 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.
- दोन 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 चं कारण हेच.
- 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 MX | Mail servers. |
dig name TXT | TXT records (SPF, verification). |
dig @8.8.8.8 name | विशिष्ट server ला विचारा. |
dig -x IP | Reverse lookup. |
dig +trace name | Root पासून follow. |
dig +noall +answer name | फक्त answer section. |
कसं करायचं (step by step)
- झटपट उत्तर.
dig +short example.com
Output:
93.184.215.14
याचा अर्थ: नाव कोणत्या IP ला point करतं.
- TTL बघा.
dig +noall +answer example.com
Output:
example.com. 3600 IN A 93.184.215.14
याचा अर्थ: 3600 seconds: resolvers हे एक तासापर्यंत cache करतात.
- 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.
- तुमचा 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.
- 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 PATH | Folder भाग. |
dirname a/b c/d | अनेक paths. |
dirname -z | शेवटी NUL. |
"$(dirname "$0")" | चालू script चा folder. |
${p%/*} | Pure bash पद्धत. |
कसं करायचं (step by step)
- साधं.
dirname /var/log/nginx/access.log
Output:
/var/log/nginx
याचा अर्थ: File नाव काढलं.
- Slash नाही.
dirname notes.txt
Output:
.
याचा अर्थ: Dot म्हणजे current folder.
- Script शेजारच्या files.
cd "$(dirname "$0")" && ls
Output:
deploy.sh config.env
याचा अर्थ: Script कुठूनही चालते.
- लिहिण्याआधी 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 -T | Human times. |
dmesg -l err,warn | Errors आणि warnings. |
dmesg -w | नवे messages follow. |
dmesg -H | सुंदर, paged output. |
dmesg | grep -i oom | OOM kills शोधा. |
dmesg -c | Print मग clear (root). |
journalctl -k -b -1 | मागच्या boot चा kernel log. |
कसं करायचं (step by step)
- अलीकडचे 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.
- माझी 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 संपली.
- 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 pkg | Install. |
dnf remove pkg | Remove. |
dnf upgrade | सगळं upgrade. |
dnf check-update | काय upgrade होऊ शकतं. |
dnf updateinfo list --security | Security updates. |
dnf search word | Search. |
dnf info pkg | Package details. |
dnf provides /path | File कोणत्या package ची. |
dnf history | मागचे transactions. |
dnf history undo N | Transaction N undo. |
dnf repolist | Enabled repositories. |
dnf module list | Module streams (RHEL 8/9). |
कसं करायचं (step by step)
- कोणते repos चालू?
dnf repolist
Output:
repo id repo name
appstream Rocky Linux 9 - AppStream
baseos Rocky Linux 9 - BaseOS
याचा अर्थ: RHEL-family चे दोन मुख्य repos.
- Web server install.
sudo dnf install -y httpd
Output:
Installed:
httpd-2.4.57-11.el9.x86_64 ...
Complete!
याचा अर्थ: Dependencies आपोआप आल्या.
- 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 करा.
- फक्त security fixes.
sudo dnf upgrade --security -y
Output:
Upgraded: openssl-1:3.0.7-27.el9 ...
याचा अर्थ: झटपट CVE patching साठी चांगलं.
- वाईट बदल 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 dir | dir चा total. |
du -h -d1 dir | एक level खोल. |
du -xh -d1 / | Root filesystem वरच राहा. |
du -sh * | sort -h | Size नुसार rank. |
du -ah dir | Files पण. |
du --exclude=*.iso | Pattern skip. |
du -c a b | Grand total. |
कसं करायचं (step by step)
- Folder चा total.
sudo du -sh /var/log
Output:
4.2G /var/log
याचा अर्थ: Logs 4.2 GB.
- /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 मोठा आहे.
- अजून एक level खोल.
sudo du -sh /var/log/* | sort -h | tail -2
Output:
600M /var/log/journal
3.4G /var/log/app
याचा अर्थ: App logs ना rotation हवं.
- सगळ्यात मोठ्या 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.
- 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, Deccan | 100 ms पेक्षा जास्त clock offset वर alert | chronyc tracking |
| Swati, e-commerce, Hinjewadi | Load 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, Pune | Rollback ids सह monthly RHEL patching | dnf upgrade --security -y |
| Omkar, video startup, Balewadi | Transcoding disk कोण भरतंय ते शोधतो | du -xh -d1 / | sort -h |
| Neha, insurance, Yerawada | Change tickets मधे config diffs | diff -u old.conf new.conf |
24. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
506 Cannot talk to daemon | chronyd चालू नाही | 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 order | Input sorted नाही | दोन्ही inputs sort करा.comm <(sort a) <(sort b) |
Cron job runs by hand but not from cron | Cron ला छोटा PATH आणि env नाही | Full paths वापरा आणि output log करा.PATH=/usr/local/bin:/usr/bin:/bin |
curl: (60) SSL certificate problem: unable to get local issuer certificate | CA 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 denied | Root लागतो | 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 reached | DNS server पोहोचत नाही किंवा block | resolv.conf आणि port 53 तपासा.cat /etc/resolv.conf; nc -vzu 8.8.8.8 53 |
Error: Failed to download metadata for repo 'appstream' | Internet नाही, proxy किंवा खराब mirror | Network तपासा, मग cache clean.dnf clean all; dnf makecache |
25. Troubleshooting step by step
हे का लागतं?
Part 2 ची command नीट वागत नसेल तर या steps.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- मागची service चालू आहे का (chronyd, crond)?
systemctl is-active chronyd crond
- Network पोहोचतं का?
ping -c2 8.8.8.8
- DNS चालतं का?
dig +short example.com
- Disk किंवा inode table भरली का?
df -h /; df -i /
- Kernel ने काही log केलं का?
sudo dmesg -T | tail -5
- अलीकडे काय बदललं?
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)
- मोठ्या 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
- Disk बघा.
df -h /tmp
Output:
tmpfs 1.8G 600M 1.2G 33% /tmp
- Folder शोधा.
du -sh /tmp/* 2>/dev/null | sort -h | tail -1
Output:
600M /tmp/lab9
- जुन्या files delete.
find /tmp/lab9 -name "f*" -mmin +0 -delete; du -sh /tmp/lab9
Output:
0 /tmp/lab9
- रात्रीचा cleanup schedule.
(crontab -l 2>/dev/null; echo "15 2 * * * find /tmp/lab9 -type f -mtime +1 -delete") | crontab -
- 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)
- DNS उत्तर आणि TTL.
dig +noall +answer example.org
Output:
example.org. 3600 IN A 93.184.215.14
- Status code.
curl -s -o /dev/null -w "%{http_code}\n" https://example.org
Output:
200
- 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
- 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
- दोन configs बनवा.
printf 'port=80\nthreads=8\n' > a.conf; printf 'port=80\nthreads=4\n' > b.conf
- 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.
Ravindra Bagale's Tip – मराठी
आज दोन सवयी लावा. एक: कोणत्याही risky बदलाआधी copy save करा आणि नंतर diff -u ने compare करा. दोन: cron line जोडताना तिचा output log file मधे पाठवा. फक्त या दोन सवयी रात्री उशिराच्या बहुतेक incidents मधे वाचवतील.
Ravindra Bagale's Tip – हिंदी
आज दो आदतें बनाइए। एक: किसी भी risky बदलाव से पहले copy save कीजिए और बाद में diff -u से compare कीजिए। दो: cron line जोड़ते समय उसका output log file में भेजिए। सिर्फ़ ये दो आदतें देर रात के ज़्यादातर 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.
घरी करून बघा
- स्वतःच्या VM वर पाच minute चा health check चालवा आणि output आजच्या date च्या नावाने save करा.
- दर 5 minutes ला file मधे date लिहिणारा cron job जोडा; 15 minutes नंतर तपासा, मग काढा.
- रोज वापरता त्या तीन sites वर dig चालवा आणि त्यांचे TTL लिहा.
सराव Tasks
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 करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Numeric tracking
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: फक्त numeric addresses सह chrony tracking दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- 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 करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं पुढचा सोमवार
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: पुढच्या सोमवारची date YYYY-MM-DD मधे print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं फक्त warnings
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: Readable times सह फक्त warn level चे kernel messages दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम फक्त पहिले bytes
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: disk1.img आणि disk2.img चे फक्त पहिले 512 bytes compare करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम फक्त दुसऱ्यात
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: old.txt शी compare करताना फक्त new.txt मधल्या lines दाखवा (दोन्ही sorted).
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम दुसऱ्या user चा cron
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: Root म्हणून user deploy चा crontab list करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- 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 करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम एक field सोडून
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: emp.csv चे field 3 सोडून सगळे comma fields print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम UTC ISO time
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: Current time UTC मधे seconds सह ISO 8601 मधे print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम df columns निवडा
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: /home साठी human units मधे फक्त source, size आणि available columns दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Spacing ignore
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: सगळी white space ignore करून a.yml आणि b.yml unified format मधे compare करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Name servers
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: example.org चे फक्त name servers list करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड आत एक command
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: Shell न उघडता /mnt/sys मधे root user साठी passwd चालवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड JSON table
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: space-separated users.txt name आणि uid column names सह JSON मधे बदला.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Weekend schedule
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: फक्त शनिवार आणि रविवार सकाळी 6:45 साठी cron time fields लिहा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Blocks skip
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: disk.img मधून पहिले 10 MiB सोडून 1 MiB part.bin मधे copy करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड एका transaction ची माहिती
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: dnf transaction 22 चे details दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Inode hogs
का: BIZ Linux servers चालवतो आणि chronyc ते du commands रोज वापरतो.
काय करायचं: /var खाली एका level वर प्रत्येक folder चा inode count दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
30. संबंधित chapters
- Linux Commands A-Z Index
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- chronyc आणि date: वेळ.
- cmp, comm, diff, cksum: compare.
- crontab: पाच fields, full paths, output log.
- curl आणि dig: web आणि DNS checks.
- df vs du: free space vs कोण वापरतं.
- dnf history undo rollback करतो.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








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