Ravindra BagaleCourses & study guides English

Linux Commands A-Z Part 4: hostname, ip, journalctl, jq, kill, lsof, lvcreate आणि अजून, Examples सह

हा Linux Commands A-Z reference चा Part 4 आहे: hostname ते lvcreate. Server ला नाव द्यायला, त्याचं network, firewall आणि CPU वाचायला, processes आणि disks बघायला, journalctl ने logs वाचायला, jq ने JSON filter करायला, processes थांबवायला, कोण login झालं ते बघायला, मोठ्या files वाचायला, links बनवायला, files जलद शोधायला, logs लिहायला आणि rotate करायला, files आणि disks list करायला, open files शोधायला आणि LVM volumes बनवायला या commands वापरतात. प्रत्येक command ला why, what, options table आणि खऱ्या output आणि अर्थासह step-by-step examples आहेत. ip, journalctl, ls आणि lsof ला जास्त depth आहे कारण त्या जवळजवळ प्रत्येक incident मधे लागतात.

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

  • hostname आणि hostnamectl ने server ला नाव द्या आणि id ने identity वाचा
  • ip ने addresses, routes आणि ARP वाचा, आणि ifconfig चा जुना output
  • iptables rules योग्य order मधे वाचा आणि जोडा
  • htop, iostat, lscpu आणि lsblk ने CPU, memory आणि disks बघा
  • journalctl आणि less ने logs वाचा, logger ने लिहा, logrotate ने rotate करा
  • jq ने APIs चा JSON filter करा
  • kill आणि killall ने processes थांबवा, आणि jobs manage करा
  • files, links आणि holders शोधायला ls, ln, locate आणि lsof वापरा, आणि lvcreate ने storage वाढवा

1. रोजचं उदाहरण: Swargate housing society office

हे का लागतं?

Society secretary प्रत्येक wing चा name board तपासतो, कोण आलं त्याचं gate register वाचतो, water tank level बघतो, CCTV recorder log बघतो, गळक्या pipe साठी plumber ला बोलावतो, भटक्या vendor ला परत पाठवतो, आणि जुनी भरली की नवी storage room जोडतो.

हे काय आहे?

hostname म्हणजे name board. last म्हणजे gate register. lsblk आणि iostat म्हणजे water tank. journalctl म्हणजे CCTV log. ip म्हणजे pipes. kill म्हणजे vendor ला परत पाठवणं. lvcreate म्हणजे नवी storage room.

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

Incident walk-throughबरोबर server?Network up?Logs काय सांगतात?कोण धरून आहे?दोषी थांबवाजागा वाढवा
प्रत्येक step या part मधली command वापरते.

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

हे का लागतं?

Deep dives आधी, outage मधले पहिले प्रश्न या commands कसे सोडवतात ते बघा.

हे काय आहे?

Server confirm करा, network तपासा, errors वाचा, मग process शोधा.

प्रश्नCommand
मी कोणत्या server वर?hostname
Network up?ip -br a
काय fail झालं?journalctl -p err -b
Port कोणाकडे?lsof -i :8080
Disk bottleneck?iostat -x

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

  1. Check एकदम चालवा.
hostname; ip -br a | grep -v lo; sudo journalctl -p err -b -n 2 --no-pager

Output:

web01.prod.example.in
eth0  UP  10.0.1.5/24
app[3120]: java.net.BindException: Address already in use
systemd[1]: app.service: Failed with result 'exit-code'.

याचा अर्थ: बरोबर server, network up, app ला port bind करता आला नाही.

  1. Port कोण धरतोय ते शोधा.
sudo lsof -i :8080 -P -n

Output:

COMMAND  PID USER FD TYPE NODE NAME
java    2950 app  45u IPv6 TCP  *:8080 (LISTEN)

याचा अर्थ: जुनी copy (PID 2950) अजून चालू. kill ने थांबवा, मग service सुरू करा.

3. hostname: Host name दाखवा/set

hostname सविस्तर: server चं नाव आणि IPs

हे का लागतं?

Prompts, logs, monitoring आणि certificates सगळीकडे host name दिसतं. चुकीच्या नावामुळे alerts चुकीच्या server वर जातात. Server चा IP पण बऱ्याचदा पटकन लागतो.

हे काय आहे?

hostname current host name print किंवा set करतो. फक्त hostname ने केलेला बदल reboot वर जातो; systemd systems वर कायमसाठी hostnamectl. hostname -I machine चे सगळे IP addresses देतो.

नेहमीचे options

Optionकाय करतो
hostnameनाव print.
hostname -fपूर्ण नाव (FQDN).
hostname -sछोटं नाव.
hostname -Iसगळे IP addresses.
sudo hostname newReboot पर्यंत set.

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

  1. मी कोणत्या server वर?
hostname

Output:

web01

याचा अर्थ: Risky commands आधी नेहमी तपासा.

  1. पूर्ण नाव.
hostname -f

Output:

web01.prod.example.in

याचा अर्थ: छोटं नाव आणि domain.

  1. माझे IPs.
hostname -I

Output:

10.0.1.15 172.17.0.1

याचा अर्थ: Server IP आणि docker bridge.

  1. तात्पुरता बदल.
sudo hostname test01; hostname

Output:

test01

याचा अर्थ: Reboot नंतर जातो. कायमसाठी hostnamectl.

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

खरा वापर: Pune मधलं hospital servers ला opd-db01 सारखी नावं देतं आणि data ला हात लावण्याआधी प्रत्येक script मधे hostname तपासतं.

4. hostnamectl: systemd ने host name manage

hostnamectl सविस्तर: नाव कायमचं set करा आणि system info बघा

हे का लागतं?

नवे VMs ip-10-0-1-15 सारख्या random नावांनी येतात. Reboot नंतरही टिकणारं अर्थपूर्ण नाव हवं, आणि OS, kernel आणि hardware चा पटकन view.

हे काय आहे?

hostnamectl systemd-hostnamed शी बोलतो. तो /etc/hostname लिहितो, चालू नाव set करतो आणि एकाच screen वर OS, kernel, architecture, virtualization आणि machine ID दाखवतो.

नेहमीचे options

Optionकाय करतो
hostnamectlStatus दाखवा.
hostnamectl set-hostname nameकायमचं set.
hostnamectl --staticफक्त saved नाव.
hostnamectl set-hostname "Pretty" --prettySpaces असलेलं display नाव.
hostnamectl set-location "Pune DC"Location नोंदवा.

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

  1. System info बघा.
hostnamectl

Output:

  Static hostname: ip-10-0-1-15
Operating System: Rocky Linux 9.4 (Blue Onyx)
          Kernel: Linux 5.14.0-427.el9.x86_64
  Virtualization: amazon
    Architecture: x86-64

याचा अर्थ: OS, kernel आणि cloud एकाच view मधे.

  1. खरं नाव set.
sudo hostnamectl set-hostname pay-api01.prod.example.in

याचा अर्थ: /etc/hostname मधे save आणि आत्ताच live.

  1. तपासा.
cat /etc/hostname; hostname

Output:

pay-api01.prod.example.in
pay-api01.prod.example.in

याचा अर्थ: Reboot नंतर टिकेल.

  1. /etc/hosts मधे पण.
echo "127.0.1.1 pay-api01.prod.example.in pay-api01" | sudo tee -a /etc/hosts

Output:

127.0.1.1 pay-api01.prod.example.in pay-api01

याचा अर्थ: sudo चे "unable to resolve host" warnings थांबतात.

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

खरा वापर: Hinjewadi मधल्या fintech चा Ansible role inventory मधून hostnamectl set-hostname चालवतो म्हणजे प्रत्येक server नाव CMDB शी जुळतं.

5. htop: Interactive process viewer

htop सविस्तर: CPU, memory आणि processes चा सोपा live view

हे का लागतं?

Server slow असतो तेव्हा कोणता process CPU किंवा memory खातोय, प्रत्येक core प्रमाणे, एका नजरेत बघून action घ्यायचीय. htop top पेक्षा वाचायला आणि वापरायला सोपा.

हे काय आहे?

htop interactive process viewer (RHEL वर EPEL मधून install). प्रत्येक CPU core, memory आणि swap चे bars, मग sortable processes list. Function keys ने search, filter, tree, priority बदल आणि kill करता येतं.

नेहमीचे options

Optionकाय करतो
htopसुरू.
F6 or < >Sort column निवडा.
F3 or /Search.
F4 or \Filter.
F5 or tTree view.
F9 or kSignal पाठवा.
htop -u nginxफक्त एक user.
htop -p 811,812फक्त हे PIDs.

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

  1. Install.
sudo dnf install -y epel-release && sudo dnf install -y htop

Output:

Complete!

याचा अर्थ: Ubuntu वर: sudo apt install htop.

  1. उघडा आणि memory ने sort.
htop  (press F6, pick PERCENT_MEM)

Output:

  1[|||||||       32%]  Mem[||||||||  5.1G/7.6G]
  PID USER  %CPU %MEM COMMAND
  811 mysql  3.1 41.0 /usr/sbin/mysqld

याचा अर्थ: mysqld 41% RAM वापरतो.

  1. फक्त web user.
htop -u nginx

Output:

(only nginx processes listed)

याचा अर्थ: कमी गोंधळ.

  1. Tree view.
htop  (press F5)

Output:

nginx: master
 ├─ nginx: worker
 └─ nginx: worker

याचा अर्थ: Parents आणि children दाखवतो.

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

खरा वापर: Wakad मधला game studio launches दरम्यान कोणता server गरम आहे ते बघायला wall screen वर htop ठेवतो.

6. id: User आणि group ids

id सविस्तर: user ID, group IDs आणि SELinux context

हे का लागतं?

Permission problems म्हणजे "मी कोण आणि माझे groups कोणते". id names आणि numbers सह उत्तर देतो, जे NFS, containers आणि file ownership साठी महत्त्वाचे.

हे काय आहे?

id current किंवा दिलेल्या user चा user ID (uid), main group (gid) आणि सगळे groups print करतो. -Z ने SELinux context पण. Numbers महत्त्वाचे कारण files नाव नाही, number साठवतात.

नेहमीचे options

Optionकाय करतो
idमी, सगळे details.
id raviदुसरा user.
id -uफक्त माझा UID.
id -unमाझं user name.
id -GnGroup names.
id -ZSELinux context.

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

  1. मी कोण?
id

Output:

uid=1001(ravi) gid=1001(ravi) groups=1001(ravi),10(wheel),3000(devs)

याचा अर्थ: UID 1001; wheel म्हणजे sudo.

  1. Script मधे मी root आहे का?
[ "$(id -u)" -eq 0 ] && echo root || echo "not root"

Output:

not root

याचा अर्थ: UID 0 म्हणजे नेहमी root.

  1. App user आहे का?
id app

Output:

uid=990(app) gid=988(app) groups=988(app)

याचा अर्थ: कमी UID असलेलं system account.

  1. NFS file owner म्हणून number दाखवते.
ls -ln /mnt/share/report.xlsx; id -u priya

Output:

-rw-r--r-- 1 1502 1502 ... report.xlsx
1003

याचा अर्थ: Servers मधे UID वेगळा; म्हणून access fail.

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

खरा वापर: Pune university ची IT team प्रत्येक lab server वर id तपासते म्हणजे student UIDs NFS home server शी जुळतात.

7. ifconfig: Network interfaces दाखवणारं जुनं tool

ifconfig सविस्तर: जुनं network tool (आणि त्याचा ip replacement)

हे का लागतं?

बरेच guides, जुन्या scripts आणि काही interviewers अजून ifconfig वापरतात. त्याचा output वाचता यायला हवा, आणि modern Linux वर त्याची जागा घेणारा ip command माहीत हवा.

हे काय आहे?

ifconfig जुन्या net-tools package मधला आहे आणि RHEL 8+ आणि नव्या Ubuntu वर default install नसतो. Interfaces, IPs, MAC, MTU आणि packet counters दाखवतो, आणि तात्पुरता IP set करू शकतो. त्याऐवजी ip addr आणि ip link वापरा.

नेहमीचे options

Optionकाय करतो
ifconfigActive interfaces.
ifconfig -aसगळे, down सकट.
ifconfig eth0एक interface.
ifconfig eth0 up/downUp किंवा down.
ip addrModern equivalent.

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

  1. नव्या server वर सापडत नाही?
ifconfig

Output:

bash: ifconfig: command not found

याचा अर्थ: net-tools install करा किंवा ip वापरा.

  1. गरज असेल तर install.
sudo dnf install -y net-tools

Output:

Complete!

याचा अर्थ: ifconfig, netstat आणि route मिळतात.

  1. एक interface वाचा.
ifconfig eth0

Output:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 10.0.1.15  netmask 255.255.255.0
        ether 0a:1b:2c:3d:4e:5f
        RX errors 0  dropped 0

याचा अर्थ: UP आणि RUNNING, IP 10.0.1.15, errors नाहीत.

  1. ip ने तेच.
ip -br addr show eth0

Output:

eth0  UP  10.0.1.15/24 fe80::81b:2cff:fe3d:4e5f/64

याचा अर्थ: -br एक छोटी line देतो.

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

खरा वापर: Nigdi college lab जुन्या exam papers साठी अजून ifconfig शिकवते, मग खऱ्या jobs साठी ip equivalent दाखवते.

8. iostat: Disk I/O stats

iostat सविस्तर: disk bottleneck आहे का?

हे का लागतं?

Database slow आहे, CPU idle दिसतो, पण load जास्त. बहुतेक disk खूप busy असते. iostat प्रत्येक disk किती busy आणि requests किती थांबतात ते दाखवतो.

हे काय आहे?

iostat sysstat package मधे आहे. तो CPU iowait आणि -x ने प्रत्येक disk चे reads, writes, throughput, average wait (r_await, w_await) आणि %util सांगतो. पहिला report boot पासूनचा; interval द्या आणि नंतरचे reports बघा.

नेहमीचे options

Optionकाय करतो
iostatBoot पासून CPU आणि disks.
iostat -x 2Extended, दर 2 s.
iostat -xz 2 5Idle disks लपवा, 5 reports.
iostat -hHuman units.
iostat -d nvme0n1एक disk.

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

  1. Install.
sudo dnf install -y sysstat

Output:

Complete!

याचा अर्थ: sar आणि mpstat पण मिळतात.

  1. Disks बघा.
iostat -xz 2 3

Output:

Device   r/s   w/s  rkB/s  wkB/s r_await w_await %util
nvme1n1 820.0 410.0 52480 26240   18.40   25.10  99.2

याचा अर्थ: 99% util आणि 18 ते 25 ms waits: data disk भरून गेली.

  1. CPU iowait तपासा.
iostat -c 2 2

Output:

avg-cpu:  %user %system %iowait  %idle
           6.1     2.4    38.7   52.8

याचा अर्थ: CPU चा 38% वेळ disk साठी थांबतो.

  1. Process शोधा.
sudo iotop -o -b -n 1 | head -4

Output:

Total DISK READ: 51.2 M/s
  PID  USER  DISK READ  COMMAND
  811 mysql  49.8 M/s   mysqld

याचा अर्थ: mysqld वाचतोय; त्याच्या slow queries तपासा.

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

खरा वापर: Pune मधल्या stock-broking firm ने प्रत्येक market open ला iostat 100% util दाखवल्यावर database जलद disks वर हलवला.

9. ip: Addresses आणि routes दाखवा/set

ip सविस्तर: addresses, links, routes आणि neighbours

हे का लागतं?

प्रत्येक network problem याने सुरू होतो: server ला योग्य IP आहे का, link up आहे का, आणि route बरोबर आहे का? कोणत्याही modern Linux वर ip तिन्हींची उत्तरं देतो.

हे काय आहे?

iproute2 मधला ip ifconfig, route आणि arp ची जागा घेतो. Objects: addr (IP addresses), link (interfaces), route (routing table), neigh (ARP), rule. बदल live असतात पण save होत नाहीत; nmcli किंवा netplan ने save करा.

नेहमीचे options

Optionकाय करतो
ip aसगळे addresses.
ip -br aBrief, प्रत्येकी एक line.
ip linkInterfaces आणि state.
ip rRouting table.
ip route get IPया IP साठी कोणता route.
ip neighARP table.
ip -s linkPacket आणि error counters.
ip addr add IP/24 dev XIP जोडा (तात्पुरता).

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

  1. Brief view.
ip -br a

Output:

lo      UNKNOWN 127.0.0.1/8 ::1/128
eth0    UP      10.0.1.15/24

याचा अर्थ: eth0 up, 10.0.1.15 सह.

  1. Routes.
ip r

Output:

default via 10.0.1.1 dev eth0 proto dhcp metric 100
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.15

याचा अर्थ: Internet traffic gateway 10.0.1.1 ला जातो.

  1. DB कडे कोणता मार्ग?
ip route get 10.0.2.15

Output:

10.0.2.15 via 10.0.1.1 dev eth0 src 10.0.1.15

याचा अर्थ: Gateway मधून जातो.

  1. Link वर errors?
ip -s link show eth0

Output:

RX: bytes  packets  errors  dropped
 9128371   71233    0       0

याचा अर्थ: Zero errors: cable किंवा virtual NIC ठीक.

  1. Test IP जोडा.
sudo ip addr add 10.0.1.99/24 dev eth0; ip -br a show eth0

Output:

eth0  UP  10.0.1.15/24 10.0.1.99/24

याचा अर्थ: Reboot वर जातो; कायमसाठी nmcli.

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

खरा वापर: Talawade factory चा network engineer machines report करणं थांबवतात तेव्हा प्रत्येक PLC subnet साठी ip route get तपासतो.

10. iptables: Low-level firewall rules

iptables सविस्तर: packet filter rules वाचा आणि जोडा

हे का लागतं?

Docker, Kubernetes, जुने servers आणि बऱ्याच cloud images अजून iptables rules वापरतात. Traffic block होतो किंवा port forward fail होतो तेव्हा ते वाचता यायला हवेत.

हे काय आहे?

iptables kernel netfilter rules tables (filter, nat, mangle) आणि chains (INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING) मधे manage करतो. Rules वरून खाली तपासले जातात; पहिला match जिंकतो. RHEL 8+ वर हा nftables चा front end, आणि firewalld preferred.

नेहमीचे options

Optionकाय करतो
-L -n -vRules, numbers, counters list.
--line-numbersRule positions.
-A INPUT ...Rule शेवटी जोडा.
-I INPUT 1 ...वरती insert.
-D INPUT 3Rule 3 delete.
-t nat -LNAT table.
iptables-saveसगळे rules dump.

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

  1. Input rules list.
sudo iptables -L INPUT -n -v --line-numbers

Output:

Chain INPUT (policy ACCEPT)
num pkts bytes target prot source    destination
1   1200 88K  ACCEPT tcp  0.0.0.0/0 0.0.0.0/0  tcp dpt:22
2     45 2700 DROP   tcp  0.0.0.0/0 0.0.0.0/0  tcp dpt:8080

याचा अर्थ: Port 8080 drop होतो; 45 packets त्या rule ला लागले.

  1. DROP च्या वर फक्त office मधून 8080 allow.
sudo iptables -I INPUT 2 -p tcp -s 203.0.113.0/24 --dport 8080 -j ACCEPT

याचा अर्थ: Position 2 वर insert, म्हणून DROP आधी तपासला जातो.

  1. Docker port forwards बघा.
sudo iptables -t nat -L DOCKER -n

Output:

DNAT  tcp  0.0.0.0/0  0.0.0.0/0  tcp dpt:8081 to:172.17.0.2:80

याचा अर्थ: Host 8081 container च्या port 80 ला जातो.

  1. Rules backup.
sudo iptables-save > /root/iptables-$(date +%F).rules

याचा अर्थ: iptables-restore ने restore.

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

खरा वापर: Hadapsar मधल्या ISP चा NOC customer ला packets server पर्यंत पोहोचतात हे सिद्ध करायला iptables counters वाचतो.

11. jobs: Shell jobs list

jobs सविस्तर: हा shell काय चालवतोय ते list करा

हे का लागतं?

काही commands & ने सुरू केले किंवा Ctrl+Z ने थांबवले आणि track सुटला. jobs ते दाखवतो म्हणजे एक परत आणता येतो किंवा kill करता येतो.

हे काय आहे?

jobs हा shell builtin. तो फक्त current shell चे jobs, job number, state (Running, Stopped, Done) आणि command सह list करतो. fg, bg आणि kill सह %N वापरा. nohup, disown किंवा tmux शिवाय jobs shell सोबत मरतात.

नेहमीचे options

Optionकाय करतो
jobsJobs list.
jobs -lPIDs सह.
jobs -rफक्त running.
jobs -sफक्त stopped.
kill %2Job 2 kill.
disown %1Logout नंतर job 1 ठेवा.

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

  1. दोन jobs सुरू.
tar czf /tmp/a.tgz /srv/app & sleep 900 &

Output:

[1] 5102
[2] 5103

याचा अर्थ: Job numbers आणि PIDs.

  1. PIDs सह list.
jobs -l

Output:

[1]- 5102 Running   tar czf /tmp/a.tgz /srv/app &
[2]+ 5103 Running   sleep 900 &

याचा अर्थ: दोन्ही अजून चालू.

  1. sleep job थांबवा.
kill %2; jobs

Output:

[1]-  Running   tar czf ...
[2]+  Terminated  sleep 900

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

  1. Logout नंतर tar ठेवा.
disown %1

याचा अर्थ: Shell तो विसरतो, म्हणून logout त्याला kill करत नाही.

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

खरा वापर: Kothrud मधला freelance developer & सह build चालवतो आणि त्याच terminal मधे docs लिहिताना jobs तपासतो.

12. journalctl: systemd logs वाचा

journalctl सविस्तर: systemd logs जलद वाचा

हे का लागतं?

Service start fail झाली, server रात्री reboot झाला, किंवा SSH logins fail होतायत. systemd systems वर हे सगळे logs journal मधे असतात, आणि journalctl service, वेळ आणि severity ने filter करतो.

हे काय आहे?

journalctl systemd-journald चा binary journal वाचतो. Unit (-u), boot (-b), वेळ (--since, --until), priority (-p) ने filter करतो, आणि live follow (-f). Storage=persistent नसेल तर reboot वर logs जातात.

नेहमीचे options

Optionकाय करतो
-u nginxएक service.
-fLive follow.
-b / -b -1हा boot / मागचा boot.
--since "1 hour ago"Time filter.
-p errErrors आणि वाईट.
-n 50शेवटच्या 50 lines.
-o catफक्त message text.
--disk-usageJournal size.
--vacuum-size=500MJournal छोटा करा.

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

  1. nginx fail का?
sudo journalctl -u nginx -n 5 --no-pager

Output:

nginx[2210]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
systemd[1]: nginx.service: Failed with result 'exit-code'.

याचा अर्थ: Port 80 आधीच दुसऱ्या process ने घेतलाय.

  1. या boot चे errors.
sudo journalctl -b -p err --no-pager | tail -3

Output:

kernel: nvme1n1: I/O error, dev nvme1n1, sector 1024
...

याचा अर्थ: Disk I/O error: hardware तपासा.

  1. काल रात्री काय झालं?
sudo journalctl --since "2026-10-25 23:00" --until "2026-10-26 01:00" -p warning

Output:

(warnings and errors in that window)

याचा अर्थ: Incident window पुरतं.

  1. Failed SSH logins.
sudo journalctl -u sshd --since today | grep -c "Failed password"

Output:

312

याचा अर्थ: आज 312 failed password attempts: fail2ban तपासा.

  1. Journal किती मोठा?
journalctl --disk-usage

Output:

Archived and active journals take up 585.0M in the file system.

याचा अर्थ: Disk कमी असेल तर --vacuum-size ने छोटा करा.

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

खरा वापर: Viman Nagar मधलं travel portal on-call engineers ना एक command देतं: journalctl -u booking-api -p err --since "15 min ago".

13. jq: JSON वाचा आणि filter

jq सविस्तर: command line वर JSON वाचा आणि filter करा

हे का लागतं?

Cloud CLIs, APIs आणि Kubernetes सगळे JSON देतात. 500 lines चा JSON डोळ्यांनी वाचणं हळू. jq हवे ते fields एका line मधे काढतो.

हे काय आहे?

jq हा JSON processor. .name किंवा .items[].id सारखा filter structure मधून फिरतो. select() ने निवडतो, नवे objects बनवतो, length ने मोजतो, आणि scripts साठी -r ने raw strings print करतो.

नेहमीचे options

Optionकाय करतो
jq .Pretty print.
jq .nameएक field.
jq ".items[]"प्रत्येक array item.
jq -rRaw strings, quotes नाहीत.
jq "select(.x>1)"Items filter.
jq lengthमोजा.
jq -cCompact, एक line.

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

  1. API reply pretty print.
curl -s https://api.example.in/health | jq .

Output:

{
  "status": "ok",
  "db": "up",
  "version": "2.4.1"
}

याचा अर्थ: Indented आणि colored.

  1. Script साठी एक field.
curl -s https://api.example.in/health | jq -r .status

Output:

ok

याचा अर्थ: -r quotes काढतो.

  1. Running instance IDs.
aws ec2 describe-instances | jq -r '.Reservations[].Instances[] | select(.State.Name=="running") | .InstanceId'

Output:

i-0a1b2c3d4e5f60718
i-0f9e8d7c6b5a40312

याचा अर्थ: Arrays फिरा, filter, print.

  1. Running नसलेले pods मोजा.
kubectl get pods -o json | jq '[.items[] | select(.status.phase!="Running")] | length'

Output:

2

याचा अर्थ: [ ] ने list बनवा, मग length.

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

खरा वापर: Baner मधली cloud team AWS CLI JSON jq मधून CSV मधे pipe करून daily cost report बनवते.

14. kill: Process ला signal पाठवा

kill सविस्तर: process थांबवायला किंवा reload करायला signals पाठवा

हे का लागतं?

Process अडकतो, CPU खातो, किंवा downtime शिवाय config reload करायचा असतो. kill त्याला signal पाठवतो, सभ्य विनंतीपासून जबरदस्तीच्या stop पर्यंत.

हे काय आहे?

kill PID ला signal पाठवतो. Default SIGTERM (15): कृपया cleanup करून बाहेर पडा. SIGHUP (1) बऱ्याचदा reload. SIGKILL (9) पकडता येत नाही: kernel लगेच process थांबवतो, cleanup नाही. 9 आधी नेहमी 15 करून बघा.

नेहमीचे options

Optionकाय करतो
kill PIDSIGTERM (15).
kill -HUP PIDReload (1).
kill -9 PIDजबरदस्ती stop.
kill -0 PIDजिवंत आहे का? (signal जात नाही)
kill -lSignals list.
kill %1Shell job 1 kill.

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

  1. PID शोधा.
pgrep -a java

Output:

4121 java -jar /opt/report/report.jar

याचा अर्थ: PID 4121.

  1. थांबायला सांगा.
kill 4121; sleep 5; kill -0 4121 && echo alive || echo gone

Output:

gone

याचा अर्थ: तो नीट बाहेर पडला.

  1. Users न तोडता nginx config reload.
sudo kill -HUP $(cat /run/nginx.pid)

याचा अर्थ: Workers नव्या config सह restart; connections राहतात.

  1. अडकलेल्या process साठी शेवटचा उपाय.
kill -9 4121

याचा अर्थ: Cleanup नाही: temp files आणि locks राहू शकतात.

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

खरा वापर: Kharadi bank च्या runbook मधे लिहिलंय: kill, 30 seconds थांबा, thread dump घ्या, आणि मगच kill -9.

15. killall: नावाने processes ला signal

killall सविस्तर: नावाने processes ना signal

हे का लागतं?

एका program ने 20 worker processes सुरू केले आणि सगळे अडकले. 20 PIDs एक एक kill करणं हळू. killall नाव वापरतो.

हे काय आहे?

killall (psmisc package) त्या exact नावाच्या प्रत्येक process ला signal पाठवतो. pkill सारखाच पण patterns match करतो. Shared servers वर काळजी: -u न दिल्यास त्या नावाचे सगळ्या users चे processes लागतात.

नेहमीचे options

Optionकाय करतो
killall nameत्या नावाच्या सगळ्यांना SIGTERM.
killall -u ravi nameफक्त ravi चे.
killall -i nameप्रत्येकासाठी विचारा.
killall -9 nameForce.
killall -w nameबाहेर पडेपर्यंत थांबा.
pkill -f patternपूर्ण command line match.

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

  1. किती workers?
pgrep -c php-fpm

Output:

21

याचा अर्थ: 21 processes.

  1. थांबवा आणि थांबा.
sudo killall -w php-fpm

याचा अर्थ: सगळे बाहेर पडल्यावर परत येतो.

  1. फक्त एका user चे.
killall -u ravi python3

याचा अर्थ: इतर users ना हात लागत नाही.

  1. Script नाव match.
pkill -f "report_job.py"

याचा अर्थ: killall ला फक्त "python3" दिसेल; -f arguments match करतो.

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

खरा वापर: Hinjewadi मधली QA lab nightly browser tests नंतर killall -u tester chrome वापरते म्हणजे पुढचा run clean सुरू होतो.

16. last: Login history

last सविस्तर: कोण login झालं आणि server कधी reboot झाला

हे का लागतं?

Incident नंतर कोणी विचारतं: server वर कोण होतं, आणि तो कधी reboot झाला? last login records मधून उत्तर देतो.

हे काय आहे?

last /var/log/wtmp वाचून logins, logouts, reboots आणि shutdowns, नवे आधी, source IP आणि duration सह list करतो. lastb /var/log/btmp मधून failed logins वाचतो. lastlog प्रत्येक user चा शेवटचा login दाखवतो.

नेहमीचे options

Optionकाय करतो
lastसगळे records.
last -n 10शेवटचे 10.
last raviएक user.
last rebootReboots.
last -xShutdowns आणि runlevel बदल सकट.
last -Fपूर्ण dates आणि times.
sudo lastbFailed logins.

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

  1. अलीकडचे logins.
last -n 3

Output:

ravi   pts/0  49.36.12.8   Mon Oct 26 01:02   still logged in
priya  pts/1  10.0.1.5     Sun Oct 25 22:10 - 23:40  (01:30)
reboot system boot 5.14.0-427  Sun Oct 25 21:58   still running

याचा अर्थ: ravi आत्ता आहे; priya 1.5 तास होती; 21:58 ला reboot.

  1. कधी reboot झाला?
last reboot | head -2

Output:

reboot system boot 5.14.0-427 Sun Oct 25 21:58 still running
reboot system boot 5.14.0-427 Tue Oct 20 03:00 - 21:57 (5+18:57)

याचा अर्थ: काल रात्रीआधी जवळजवळ 6 दिवस चालू.

  1. Failed login attempts.
sudo lastb -n 3

Output:

root ssh:notty 185.220.1.2 Mon Oct 26 00:59 - 00:59
admin ssh:notty 185.220.1.2 Mon Oct 26 00:59 - 00:59

याचा अर्थ: Bot passwords guess करतोय.

  1. प्रत्येक user चा शेवटचा login.
lastlog | grep -v "Never"

Output:

Username Port From        Latest
ravi     pts/0 49.36.12.8  Mon Oct 26 01:02:11

याचा अर्थ: Disable करायला न वापरलेली accounts शोधा.

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

खरा वापर: Yerawada मधल्या BPO च्या audit report मधे change दरम्यान प्रत्येक server वर कोणता admin होता ते दाखवायला last -F output असतो.

17. less: File page by page

less सविस्तर: मोठ्या files आणि outputs page by page वाचा

हे का लागतं?

2 million lines चा log cat ने screen भरून टाकेल आणि editor अडकवेल. less तो लगेच उघडतो आणि search, jump आणि follow करू देतो.

हे काय आहे?

less हा pager: एका वेळी एक screen दाखवतो आणि लागेल तेवढंच वाचतो. Keys: Space पुढचं page, b मागे, /word search, n पुढचा match, G शेवट, g सुरुवात, F tail -f सारखं follow, q बाहेर. man less वापरतो.

नेहमीचे options

Optionकाय करतो
less fउघडा.
less -N fLine numbers.
less -S fलांब lines wrap करू नका.
less +F fFollow mode मधे सुरू.
less -iSearch case ignore.
cmd | lessOutput page by page.

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

  1. मोठा log उघडा.
less -N /var/log/app/app.log

Output:

      1 2026-10-26 00:00:01 INFO start
      2 2026-10-26 00:00:02 INFO db connected
:

याचा अर्थ: Gigabytes असले तरी लगेच उघडतो.

  1. Error search.
/ERROR  then n

Output:

2026-10-26 00:41:10 ERROR payment timeout id=7781

याचा अर्थ: n पुढच्या match ला, N मागे.

  1. Wrap न करता wide CSV.
less -S sales.csv

Output:

date,region,store,amount,tax,discount,channel...

याचा अर्थ: Arrow keys ने बाजूला scroll.

  1. Live log follow.
less +F /var/log/nginx/access.log

Output:

Waiting for data... (interrupt to abort)

याचा अर्थ: Ctrl+C follow थांबवतो म्हणजे search करता येतं; F परत सुरू.

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

खरा वापर: Magarpatta मधला support desk tail -f ऐवजी less +F शिकवतो, कारण log न गमावता pause आणि search करता येतं.

ln सविस्तर: hard links आणि symbolic links

हे का लागतं?

/opt/app/current सारखा एक stable path latest release ला point करायला हवा, किंवा copy न करता config दोन ठिकाणी. Links हे करतात, आणि release बदलणं एक command होतं.

हे काय आहे?

ln links बनवतो. Hard link म्हणजे त्याच inode चं दुसरं नाव (तोच data); filesystems पार करू शकत नाही किंवा folders ला point करू शकत नाही. Symbolic link (-s) म्हणजे path ठेवणारी छोटी file; कुठेही point करू शकते पण target काढल्यास तुटते.

नेहमीचे options

Optionकाय करतो
ln target nameHard link.
ln -s target nameSymbolic link.
ln -sf target nameअसलेली link replace.
ln -sfn dir linkFolder च्या link ला replace.
readlink -f linkखरं कुठे point करतं?
find -L . -type lतुटलेल्या links शोधा.

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

  1. current ला release कडे point.
sudo ln -s /opt/app/releases/v41 /opt/app/current; ls -l /opt/app/current

Output:

lrwxrwxrwx 1 root root 24 Oct 26 01:30 /opt/app/current -> /opt/app/releases/v41

याचा अर्थ: Arrow target दाखवतो.

  1. Link बदलून v42 deploy.
sudo ln -sfn /opt/app/releases/v42 /opt/app/current; readlink -f /opt/app/current

Output:

/opt/app/releases/v42

याचा अर्थ: -n जुन्या link ला file मानतो, म्हणून आत जात नाही, replace होते.

  1. Hard link: तोच inode.
ln data.csv data-copy.csv; ls -li data*.csv

Output:

1310722 -rw-r--r-- 2 ravi ravi 9.1M data.csv
1310722 -rw-r--r-- 2 ravi ravi 9.1M data-copy.csv

याचा अर्थ: तोच inode number, link count 2, जास्त जागा नाही.

  1. तुटलेल्या links.
find /etc -xtype l

Output:

/etc/nginx/sites-enabled/old-site

याचा अर्थ: Target delete झालं; link काढा किंवा fix करा.

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

खरा वापर: Baner मधली e-commerce team current symlink मागच्या folder कडे वळवून वाईट release दोन seconds मधे rollback करते.

19. locate: Database मधून files पटकन शोधा

locate सविस्तर: database मधून files लगेच शोधा

हे का लागतं?

पूर्ण disk वर find ला minutes लागू शकतात. फक्त "X नावाची file कुठे" हवं असेल तर locate milliseconds मधे उत्तर देतो.

हे काय आहे?

locate (mlocate किंवा plocate package) updatedb ने बनवलेल्या file names च्या database मधे शोधतो, साधारण दिवसातून एकदा timer ने. जलद पण जुना असू शकतो: नव्या files नसतात आणि deleted files अजून दिसू शकतात. Refresh साठी sudo updatedb.

नेहमीचे options

Optionकाय करतो
locate nameSearch.
locate -i nameCase ignore.
locate -c nameफक्त count.
locate -e nameफक्त अजून असलेल्या files.
locate -r regexRegex.
sudo updatedbDatabase rebuild.

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

  1. Install आणि build.
sudo dnf install -y mlocate && sudo updatedb

Output:

Complete!

याचा अर्थ: पहिला build पूर्ण disk एकदा वाचतो.

  1. File शोधा.
locate sshd_config

Output:

/etc/ssh/sshd_config
/usr/share/man/man5/sshd_config.5.gz

याचा अर्थ: Instant, नाव असलेला प्रत्येक path.

  1. आत्ता बनवलेली file नाही.
touch /tmp/newfile.txt; locate newfile.txt; echo "code=$?"

Output:

code=1

याचा अर्थ: Database file पेक्षा जुना.

  1. Refresh करून परत.
sudo updatedb; locate newfile.txt

Output:

/tmp/newfile.txt

याचा अर्थ: आता सापडली.

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

खरा वापर: Deccan मधला web host shared server वरची प्रत्येक WordPress site एका second मधे शोधायला locate wp-config.php वापरतो.

20. logger: System log मधे message

logger सविस्तर: system log मधे स्वतःचे messages लिहा

हे का लागतं?

Backup script रात्री 2 ला चालली. चालली का? ती system log मधे लिहिते असेल तर result इतर प्रत्येक event च्या शेजारी असतो, central logging ला पोहोचतो आणि alerts trigger करू शकतो.

हे काय आहे?

logger syslog आणि systemd journal ला message पाठवतो. -t tag set करतो (program name म्हणून दिसतो), -p user.err सारखी facility आणि priority. journalctl -t tag ने किंवा /var/log/messages मधे परत वाचा.

नेहमीचे options

Optionकाय करतो
logger "msg"Message लिहा.
logger -t backup "msg"Tag सह.
logger -p user.err "msg"Priority सह.
logger -s "msg"Screen वर पण.
logger -f fileFile ची प्रत्येक line log.

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

  1. Success log करा.
logger -t backup "nightly backup ok size=4.2G"

याचा अर्थ: काही print होत नाही; log मधे गेलं.

  1. वाचा.
journalctl -t backup -n 1 --no-pager

Output:

Oct 26 02:00:41 web01 backup[5541]: nightly backup ok size=4.2G

याचा अर्थ: Tag, PID आणि वेळ जोडले.

  1. Error priority सह failure.
logger -t backup -p user.err "nightly backup FAILED rc=23"

याचा अर्थ: err level बघणारं monitoring alert देईल.

  1. Script मधे वापरा.
rsync -a /srv/ backup01:/b/ && logger -t backup ok || logger -t backup -p user.err failed

याचा अर्थ: एक line, दोन्ही results log.

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

खरा वापर: Nashik Phata मधल्या cold-storage company च्या sensor scripts logger ने temperatures log करतात म्हणजे alerts central server ला पोहोचतात.

21. logrotate: Logs rotate आणि compress

logrotate सविस्तर: logs ने disk भरू देऊ नका

हे का लागतं?

App रोज 2 GB logs लिहितं. Rotation शिवाय आठवड्यात disk भरते आणि app crash होतं. logrotate schedule प्रमाणे जुने logs rename, compress आणि delete करतो.

हे काय आहे?

logrotate रोज (cron किंवा systemd timer) चालतो आणि /etc/logrotate.conf आणि /etc/logrotate.d/ मधल्या files वाचतो. प्रत्येक block मधे log paths आणि rules: daily किंवा weekly, rotate N, compress, missingok, notifempty, आणि app ला logs reopen करायला सांगायला postrotate. Reopen न करू शकणाऱ्या apps साठी copytruncate.

नेहमीचे options

Optionकाय करतो
daily / weeklyकिती वेळा.
rotate 1414 जुन्या files ठेवा.
compressजुन्या files gzip.
delaycompressसगळ्यात नवी जुनी file unzipped.
maxsize 500Mमोठी झाली तर आधी rotate.
copytruncateCopy करा, मग file रिकामी.
logrotate -d confDry run (debug).
logrotate -f confआत्ता force.

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

  1. App साठी rule लिहा.
printf '/var/log/app/*.log {\n daily\n rotate 14\n compress\n delaycompress\n missingok\n notifempty\n maxsize 500M\n copytruncate\n}\n' | sudo tee /etc/logrotate.d/app

Output:

/var/log/app/*.log {
 daily
 rotate 14
 ...

याचा अर्थ: Daily, 14 ठेवा, compress, किंवा 500 MB ला आधी.

  1. Dry run.
sudo logrotate -d /etc/logrotate.d/app

Output:

considering log /var/log/app/app.log
  log needs rotating

याचा अर्थ: काय होईल ते दाखवतो; काही बदलत नाही.

  1. एकदा force.
sudo logrotate -f /etc/logrotate.d/app; ls /var/log/app

Output:

app.log  app.log.1

याचा अर्थ: आत्ता rotate; पुढच्या run ला app.log.1 compress.

  1. शेवटचं कधी चाललं?
sudo grep app.log /var/lib/logrotate/logrotate.status

Output:

"/var/log/app/app.log" 2026-10-26-1:35:0

याचा अर्थ: State file प्रत्येक log ची नोंद ठेवते.

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

खरा वापर: Hinjewadi मधली telecom billing team month-end runs मधे, logs वेगाने वाढतात तेव्हा, hourly logrotate सह maxsize 1G वापरते.

22. ls: Files list

ls सविस्तर: admins सारख्या files list करा

हे का लागतं?

प्रत्येक task "या folder मधे काय आहे" ने सुरू होतो: sizes, owners, permissions, नव्या files, hidden files. ls -l हे interviewers ला सगळ्यात आधी वाचता यायला हवं.

हे काय आहे?

ls folder contents list करतो. -l long format देतो: type आणि permissions, link count, owner, group, size, change time, name. -a hidden dot files, -h human sizes, -t time ने sort, -S size ने, -r उलटं, -d folder स्वतः, -i inode, -Z SELinux label.

नेहमीचे options

Optionकाय करतो
-lLong format.
-a / -AHidden files (A . आणि .. सोडतो).
-hHuman sizes.
-tनवे आधी.
-Sमोठे आधी.
-rउलटं.
-RRecursive.
-dFolder स्वतः.
-iInode numbers.
-ZSELinux context.
--time-style=long-isoस्पष्ट dates.

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

  1. Long format वाचा.
ls -lh /etc/ssh/sshd_config

Output:

-rw-------. 1 root root 3.6K Oct 20 10:12 /etc/ssh/sshd_config

याचा अर्थ: - file; फक्त root ला rw; . म्हणजे SELinux label; 3.6 KB.

  1. नव्या files आधी.
ls -lt /var/log | head -4

Output:

total 98340
-rw-r----- 1 root root 2.1M Oct 26 01:40 secure
-rw-r----- 1 root root 8.4M Oct 26 01:40 messages
-rw------- 1 root root  12K Oct 26 01:30 cron

याचा अर्थ: आत्ता कोणते logs लिहिले जातायत.

  1. मोठे आधी, hidden सकट.
ls -lAhS ~ | head -4

Output:

total 2.2G
-rw-r--r-- 1 ravi ravi 2.0G Oct 12 old.iso
-rw------- 1 ravi ravi  41K Oct 26 .bash_history

याचा अर्थ: Home folder मधला जागा खाणारा शोधा.

  1. Folder, त्यातलं नाही.
ls -ld /srv/devs

Output:

drwxrws--- 2 root devs 4096 Oct 26 01:10 /srv/devs

याचा अर्थ: Group भागातला s म्हणजे setgid.

  1. SELinux labels.
ls -Z /var/www/html

Output:

unconfined_u:object_r:httpd_sys_content_t:s0 index.html

याचा अर्थ: httpd_sys_content_t मुळे web server वाचू शकतो.

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

खरा वापर: Kothrud मधल्या web agency चा कोणत्याही 403 error वर पहिला check म्हणजे web folder वर ls -lZ.

23. lsblk: Block devices list

lsblk सविस्तर: disks, partitions आणि mounts tree म्हणून बघा

हे का लागतं?

काहीही format, mount, extend किंवा dd करण्याआधी कोणती disk कोणती ते माहीत हवं. lsblk प्रत्येक block device, size आणि कुठे mounted ते स्पष्ट tree मधे दाखवतो.

हे काय आहे?

lsblk sysfs वाचून disks, partitions, LVM volumes, RAID आणि loop devices list करतो. -f filesystem type, label आणि UUID जोडतो; -o columns निवडतो. काहीच बदलत नाही, म्हणून नेहमी safe.

नेहमीचे options

Optionकाय करतो
lsblkDevices चा tree.
lsblk -fFilesystems आणि UUIDs.
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTSनिवडलेले columns.
lsblk -dफक्त disks.
lsblk -pपूर्ण /dev paths.
lsblk -JJSON output.

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

  1. सगळं बघा.
lsblk

Output:

NAME          SIZE TYPE MOUNTPOINTS
nvme0n1        20G disk
├─nvme0n1p1     1G part /boot
└─nvme0n1p2    19G part
  ├─rl-root    17G lvm  /
  └─rl-swap     2G lvm  [SWAP]
nvme1n1        50G disk

याचा अर्थ: दुसरी disk nvme1n1 ला partitions किंवा mounts नाहीत: तीच नवी.

  1. fstab साठी filesystems आणि UUIDs.
lsblk -f /dev/nvme1n1

Output:

NAME      FSTYPE UUID                                 MOUNTPOINTS
nvme1n1p1 xfs    7c1e2f3a-9b8d-4e5f-a1b2-c3d4e5f60718 /data

याचा अर्थ: /etc/fstab मधे device name नाही, UUID वापरा.

  1. फक्त disks.
lsblk -d -o NAME,SIZE,MODEL

Output:

NAME    SIZE MODEL
nvme0n1  20G Amazon Elastic Block Store
nvme1n1  50G Amazon Elastic Block Store

याचा अर्थ: पटकन inventory.

  1. Cloud disk वाढवल्यानंतर.
lsblk /dev/nvme1n1

Output:

nvme1n1      80G disk
└─nvme1n1p1  50G part /data

याचा अर्थ: Disk 80G पण partition अजून 50G: growpart ने वाढवा.

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

खरा वापर: Hinjewadi मधली data team प्रत्येक dd आणि mkfs आधी lsblk चालवते; त्यांच्या disk runbook ची पहिली line.

24. lscpu: CPU details

lscpu सविस्तर: या server ला कोणता CPU आहे?

हे का लागतं?

Database sizing, per core software licensing, किंवा VM ला पैसे दिलेले cores मिळाले का तपासणं, सगळ्याला CPU facts लागतात. lscpu ते नीट दाखवतो.

हे काय आहे?

lscpu /proc/cpuinfo आणि sysfs वाचून architecture, CPU count, threads per core, cores per socket, sockets, model, speed, caches, NUMA nodes आणि virtualization summarize करतो.

नेहमीचे options

Optionकाय करतो
lscpuSummary.
lscpu -eप्रत्येक CPU ची एक line.
lscpu -JJSON.
nprocफक्त CPU count.
lscpu | grep -i numaNUMA layout.

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

  1. Summary.
lscpu | grep -E "^(Architecture|CPU\(s\)|Thread|Core|Socket|Model name)"

Output:

Architecture:            x86_64
CPU(s):                  4
Model name:              Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
Thread(s) per core:      2
Core(s) per socket:      2
Socket(s):               1

याचा अर्थ: 4 vCPUs = 2 cores x 2 threads.

  1. Script साठी फक्त count.
nproc

Output:

4

याचा अर्थ: Worker counts set करायला, जसं make -j$(nproc).

  1. हा VM आहे का?
lscpu | grep -i hypervisor

Output:

Hypervisor vendor:       KVM

याचा अर्थ: KVM (AWS Nitro) वर चालतोय.

  1. ARM की Intel?
lscpu | head -1

Output:

Architecture:            aarch64

याचा अर्थ: aarch64 म्हणजे ARM (AWS Graviton सारखा): ARM images वापरा.

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

खरा वापर: Pune मधला software vendor bank ला per-core licence quote करण्याआधी lscpu cores तपासतो.

25. lsof: Open files list

lsof सविस्तर: open files, ports आणि deleted files list करा

हे का लागतं?

Disk full पण du कमी दाखवतो, port busy आहे, किंवा "too many open files" errors येतात. तिन्ही open files बद्दल आहेत, आणि lsof ते दाखवतो.

हे काय आहे?

Linux मधे सगळं file आहे: regular files, folders, sockets, pipes आणि devices. lsof process प्रमाणे PID, user, file descriptor आणि name सह list करतो. Filters: -p PID, -u user, -i network, +D folder, +L1 deleted पण open.

नेहमीचे options

Optionकाय करतो
lsof -i :80Port 80 कोण वापरतो.
lsof -i -P -nसगळ्या network files, numeric.
lsof -p PIDProcess च्या files.
lsof -u raviUser च्या files.
lsof +D /var/logFolder मधे open files.
lsof +L1Deleted पण अजून open.

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

  1. 443 वर कोण ऐकतो?
sudo lsof -i :443 -sTCP:LISTEN -P -n

Output:

COMMAND  PID USER FD  TYPE NODE NAME
nginx   1043 root 7u  IPv4 TCP  *:443 (LISTEN)

याचा अर्थ: nginx, PID 1043.

  1. Disk full: deleted open files शोधा.
sudo lsof +L1 | head -3

Output:

COMMAND  PID USER FD  SIZE/OFF NLINK NAME
java    4121 app  12w 7340032000  0 /var/log/app/debug.log (deleted)

याचा अर्थ: 7 GB अजून java धरून आहे. जागा मोकळी करायला restart (किंवा fd truncate).

  1. Process ने किती files उघडल्या?
sudo lsof -p 4121 | wc -l

Output:

1019

याचा अर्थ: 1024 limit जवळ: LimitNOFILE वाढवा.

  1. Database ला connections.
sudo lsof -i TCP:5432 -P -n | grep -c ESTABLISHED

Output:

48

याचा अर्थ: 48 open DB connections.

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

खरा वापर: Wakad मधल्या SaaS company ला पहाटे 3 ला, reboot शिवाय, lsof +L1 ने crashed worker ने धरलेला 40 GB deleted log सापडला.

26. lvcreate: LVM logical volume बनवा

lvcreate सविस्तर: LVM logical volumes बनवा

हे का लागतं?

Partitions resize करणं कठीण. LVM ने disks volume group मधे pool करता आणि नंतर online सुद्धा वाढवता येणारे flexible logical volumes कापता. lvcreate ते volumes बनवतो.

हे काय आहे?

LVM चे तीन layers: physical volumes (disk किंवा partition वर pvcreate), त्यांना pool करणारा volume group (vgcreate), आणि format करून mount करायचे logical volumes (lvcreate). -L size, -l extents किंवा 100%FREE सारखा percent, -n नाव, -s snapshot.

नेहमीचे options

Optionकाय करतो
-L 20GSize.
-l 100%FREEसगळी free space.
-n dataनाव.
-s -L 5G -n snap vg/lvSnapshot.
lvsVolumes list.
lvextend -r -L +10G vg/lvवाढवा आणि filesystem resize.

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

  1. Disk आणि group तयार.
sudo pvcreate /dev/nvme1n1 && sudo vgcreate vgdata /dev/nvme1n1

Output:

Physical volume "/dev/nvme1n1" successfully created.
Volume group "vgdata" successfully created

याचा अर्थ: vgdata नावाचा 50 GB pool.

  1. 20 GB volume बनवा.
sudo lvcreate -L 20G -n lvapp vgdata

Output:

Logical volume "lvapp" created.

याचा अर्थ: Device /dev/vgdata/lvapp.

  1. Format आणि mount.
sudo mkfs.xfs /dev/vgdata/lvapp && sudo mkdir -p /app && sudo mount /dev/vgdata/lvapp /app && df -h /app

Output:

/dev/mapper/vgdata-lvapp   20G  175M   20G   1% /app

याचा अर्थ: वापरायला तयार; /etc/fstab मधे जोडा.

  1. नंतर online वाढवा.
sudo lvextend -r -L +10G /dev/vgdata/lvapp

Output:

Size of logical volume vgdata/lvapp changed from 20.00 GiB to 30.00 GiB.
data blocks changed from 5242880 to 7864320

याचा अर्थ: -r filesystem पण वाढवतो. Downtime नाही.

  1. तपासा.
sudo lvs

Output:

  LV    VG     Attr       LSize
  lvapp vgdata -wi-ao---- 30.00g

याचा अर्थ: 30 GB, active आणि open.

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

खरा वापर: Pune hospital चा PACS server radiology team ला न थांबवता दर quarter lvextend ने image volume वाढवतो.

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

हे का लागतं?

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

हे काय आहे?

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

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

Team आणि शहरते कसं वापरतातCommand
Kiran, SRE, Kharadiप्रत्येक reboot नंतर मागच्या boot चे errors वाचतोjournalctl -b -1 -p err
Anjali, fintech, MagarpattaJSON मधून build versions वाचतेjq -r .version package.json
Rohit, SaaS, BanerSymlink switch करून deploy करतोln -sfn /srv/releases/v43 /srv/current
Priya, cloud, Hinjewadiकोणत्याही mkfs आधी disks तपासतेlsblk -f
Amol, ERP, PimpriUpgrades आधी DB volume snapshot करतोlvcreate -s -L 5G -n db-pre vg01/db
Sneha, bank, CampAudit साठी login history print करतेlast -n 50

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

हे का लागतं?

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

हे काय आहे?

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

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

दिसणारा errorका होतंFix कसा करायचा
Cannot find device "eth1"या server वर interface नाव वेगळंआधी interfaces list करा.
ip -br link
ifconfig: command not foundnet-tools install नाहीip वापरा, किंवा net-tools install.
ip -br a
iptables: Bad rule (does a matching rule exist in that chain?)नसलेला rule delete करणंNumber ने delete करा.
iptables -L INPUT --line-numbers
New iptables ACCEPT rule never matchesDROP rule नंतर append केलाDROP च्या वर insert करा.
iptables -I INPUT 3 -p tcp --dport 80 -j ACCEPT
No journal files were found.Journal ठेवला नाही किंवा permission नाहीsudo वापरा; persistence साठी /var/log/journal बनवा.
mkdir -p /var/log/journal; systemctl restart systemd-journald
jq: error: Cannot index array with "name"Input list आहे, object नाहीआधी .[] जोडा.
jq '.[].name' f.json
parse error: Invalid numeric literal at line 1, column 10Input JSON नाही (बहुतेक HTML error page)आधी raw reply तपासा.
curl -s URL | head -c 200
kill: (3120) - Operation not permittedProcess दुसऱ्या user चाOwner तपासून sudo वापरा.
ps -o user,pid,cmd -p 3120
ln: failed to create symbolic link '/opt/app/current': File existsLink आधीच आहे-sfn ने replace करा.
ln -sfn /opt/app/releases/v43 /opt/app/current
locate: can not stat () `/var/lib/plocate/plocate.db'Database अजून बनला नाहीupdatedb चालवा.
updatedb
error: skipping "/var/log/app/app.log" because parent directory has insecure permissionslogrotate ला group किंवा world writable folder दिसतोRule मधे su line जोडा.
su app app
Volume group "vg01" has insufficient free spaceFree पेक्षा जास्त मागितलंvgs तपासा; 100%FREE वापरा किंवा disk जोडा.
vgs; lvcreate -l 100%FREE -n data vg01

29. Troubleshooting step by step

हे का लागतं?

Part 4 ची command अपेक्षेप्रमाणे वागत नसेल तर या steps.

हे काय आहे?

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

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

  1. लागेल तिथे root आहात का?
id -u
  1. Command install आहे का?
command -v htop iostat jq lsof
  1. नाव बरोबर आहे का (interface, unit, VG)?
ip -br link; systemctl list-units --type=service | head; vgs
  1. बदल फक्त reboot पर्यंत आहे का?
cat /etc/hostname; nmcli con show
  1. Log जास्त काही सांगतो का?
journalctl -xe -n 20
  1. Input तुम्हाला वाटतो तसाच आहे का?
head -c 200 file.json

30. Lab 1: Disk full पण du कमी दिसतो

हे का लागतं?

Deleted पण open file बनवा, lsof ने शोधा, जागा मोकळी करा, आणि log rotation जोडा.

हे काय आहे?

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

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

  1. मोठी file लिहा आणि open ठेवा.
dd if=/dev/zero of=/tmp/big.log bs=1M count=300 status=none; tail -f /tmp/big.log > /dev/null &

Output:

[1] 7001
  1. Delete करा.
rm /tmp/big.log; df -h /tmp | tail -1

Output:

tmpfs 1.8G 300M 1.5G 17% /tmp
  1. शोधा.
lsof +L1 2>/dev/null | grep big.log

Output:

tail 7001 ravi 3r REG 300M 0 /tmp/big.log (deleted)
  1. जागा मोकळी करा.
kill %1; df -h /tmp | tail -1

Output:

tmpfs 1.8G 0 1.8G 0% /tmp
  1. logrotate rule dry run.
sudo logrotate -d /etc/logrotate.d/app

Output:

considering log /var/log/app/app.log

31. Lab 2: Loop disk वर LVM ने storage जोडा

हे का लागतं?

File पासून practice disk बनवा, त्यावर LVM बनवा, mount करा आणि वाढवा.

हे काय आहे?

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

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

  1. 1 GB practice disk बनवा.
truncate -s 1G /tmp/disk.img && sudo losetup -f --show /tmp/disk.img

Output:

/dev/loop0
  1. बघा.
lsblk /dev/loop0

Output:

loop0 7:0 0 1G 0 loop
  1. PV, VG आणि LV.
sudo pvcreate /dev/loop0 && sudo vgcreate vglab /dev/loop0 && sudo lvcreate -L 400M -n data vglab

Output:

Logical volume "data" created.
  1. Format आणि mount.
sudo mkfs.xfs -q /dev/vglab/data && sudo mkdir -p /mnt/lab && sudo mount /dev/vglab/data /mnt/lab && df -h /mnt/lab | tail -1

Output:

/dev/mapper/vglab-data 395M 24M 371M 7% /mnt/lab
  1. Online वाढवा.
sudo lvextend -r -L +200M /dev/vglab/data && df -h /mnt/lab | tail -1

Output:

/dev/mapper/vglab-data 595M 25M 570M 5% /mnt/lab

Ravindra Bagale's Tip

Keep a personal incident checklist: hostname, ip -br a, journalctl -p err -b, lsof -i, iostat -x, df -h. Run it in the same order every time and you will rarely miss the cause.

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

प्र. ip की ifconfig?

ip. ifconfig जुना आहे आणि बहुतेक install नसतो.

प्र. आधी kill -9?

नाही. App cleanup करू शकेल म्हणून आधी साधा kill.

प्र. Hard link की symlink?

बहुतेक वेळा symlink; hard links filesystems पार करू शकत नाहीत किंवा folders कडे point करू शकत नाहीत.

प्र. locate नवी file का miss करतो?

त्याचा database दिवसातून एकदा update होतो; updatedb चालवा.

प्र. जुने journals कुठे?

/var/log/journal असेल तर तिथे; नाहीतर reboot ला जातात.

प्र. XFS volume छोटा करता येतो?

नाही. XFS फक्त वाढतो. Sizes plan करा किंवा छोटा करायचा असेल तर ext4.

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

Beginner level

प्र. तुमचा IP कसा बघाल?

ip -br a.

प्र. कायमचं hostname कसं set कराल?

hostnamectl set-hostname name.

प्र. नव्या files आधी कशा list कराल?

ls -lt.

प्र. एका service चे logs कसे बघाल?

journalctl -u name.

Mid level level

प्र. Port 443 कोणता process वापरतो?

lsof -i :443 किंवा ss -ltnp.

प्र. SIGTERM vs SIGKILL?

TERM पकडता येतो आणि cleanup होतो; KILL नाही.

प्र. Script मधे JSON मधून फक्त version वाचा.

jq -r .version file.json.

प्र. Disk bottleneck आहे हे कसं कळेल?

iostat -x: जास्त %util आणि await, आणि जास्त iowait.

Senior level

प्र. Downtime शिवाय /data 10 GB ने वाढवा.

Disk जोडा, pvcreate, vgextend, lvextend -r -L +10G.

प्र. Server रात्री reboot झाला. का ते कसं शोधाल?

last reboot, journalctl -b -1 -p err, OOM किंवा kernel panic तपासा.

प्र. iptables ACCEPT rule काही करत नाही. का?

तो DROP च्या खाली आहे; --line-numbers ने list करून वर insert करा.

प्र. एका server वर zero-downtime deploy आणि rollback?

Release folders आणि current switch करायला ln -sfn.

घरी करून बघा

  1. तुमच्या VM वर incident check चालवा आणि output save करा.
  2. Loop disk वर Lab 2 करा आणि मग lvremove, vgremove आणि losetup -d ने काढा.
  3. कोणत्याही public API reply ला jq ने सुंदर print करा.
  4. Release symlink बनवा, दोनदा switch करा आणि readlink -f ने तपासा.

सराव Tasks

या scenario बद्दल

Vidarbha Cotton Mills हा नागपूर मधला वस्त्रोद्योग व्यवसाय आहे. Ganesh Wankhede त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 22

सोपं नाव set

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

काय करायचं: कायमचं host name app02 set करा.

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

सोपं IPs दाखवा

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

काय करायचं: hostname ने या machine चे सगळे IP addresses print करा.

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

सोपं Group names

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

काय करायचं: deploy user चे group names print करा.

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

सोपं Host चा route

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

काय करायचं: 192.168.10.20 ला पोहोचायला वापरला जाणारा route दाखवा.

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

सोपं एका service चा log

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

काय करायचं: crond service चा journal दाखवा.

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

सोपं सभ्य stop

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

काय करायचं: PID 4410 ला default stop signal पाठवा.

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

सोपं Reboot history

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

काय करायचं: System चे शेवटचे 4 reboots दाखवा.

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

सोपं Symlink बनवा

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

काय करायचं: /opt/kube/kubectl कडे point करणारा /usr/local/bin/kc नावाचा symlink बनवा.

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

सोपं UUIDs सह disks

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

काय करायचं: Filesystem type आणि UUID सह /dev/xvdf device list करा.

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

सोपं Tagged log line

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

काय करायचं: ci tag सह deploy done message system log मधे लिहा.

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

मध्यम Link counters

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

काय करायचं: ens5 interface चे packet statistics दाखवा.

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

मध्यम Disk stats

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

काय करायचं: दर 5 seconds ला 3 वेळा extended disk stats दाखवा.

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

मध्यम एका वेळेपासून

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

काय करायचं: 30 minutes पूर्वीपासूनच्या journal entries दाखवा.

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

मध्यम Raw value

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

काय करायचं: cfg.json मधून region key ची raw value print करा.

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

मध्यम User साठी नावाने kill

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

काय करायचं: web user च्या मालकीचे node नावाचे सगळे processes थांबवा.

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

मध्यम मोठे आधी

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

काय करायचं: /var/tmp long format, human sizes, मोठे आधी list करा.

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

मध्यम Folder स्वतः

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

काय करायचं: /opt folder स्वतःचे permissions दाखवा, contents नाही.

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

मध्यम Port कोण वापरतं

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

काय करायचं: Port 3306 कोणता process वापरतो ते दाखवा.

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

अवघड वर insert

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

काय करायचं: INPUT च्या सगळ्यात वर tcp port 9100 accept करणारा rule insert करा.

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

अवघड या boot चे unit errors

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

काय करायचं: sshd साठी या boot चे फक्त error priority messages दाखवा.

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

अवघड Items मोजा

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

काय करायचं: team.json मधल्या users list मधे किती items आहेत ते print करा.

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

अवघड सगळी free space

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

काय करायचं: vgdata मधे सगळी free space वापरून logs नावाचा logical volume बनवा.

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

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

  1. कायमच्या नावासाठी hostnamectl.
  2. ip -br a, ip route, ip neigh.
  3. journalctl -u, -b, -p, --since.
  4. kill: आधी TERM, शेवटी KILL.
  5. Deleted पण open files साठी lsof +L1.
  6. LVM: pvcreate, vgcreate, lvcreate, lvextend -r.

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

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

Incident ची पहिली 5 minutes. बरोबर server? Network up? काय fail झालं? Port कोणाकडे?
उजळणी card: Incident ची पहिली 5 minutes · PNG download करा · Card page उघडा
LVM ने storage जोडा. Disks बघा. Disk ते pool. Volume बनवा. Online वाढवा.
उजळणी card: LVM ने storage जोडा · PNG download करा · Card page उघडा
ip vs ifconfig. Modern iproute2 tool. / जुनं net-tools tool.
तुलना: ip vs ifconfig · PNG download करा · Card page उघडा
kill vs killall. एका PID ला signal. / नावाने सगळ्यांना signal.
तुलना: kill vs killall · PNG download करा · Card page उघडा
SIGTERM की SIGKILL?. TERM app ला cleanup करू देतो. KILL पकडता येत नाही. KILL शेवटी.
मुलाखत card: SIGTERM की SIGKILL? · PNG download करा · Card page उघडा
Server का reboot झाला?. कधी boot झाला? मागच्या boot चे errors. OOM शोधा.
मुलाखत card: Server का reboot झाला? · PNG download करा · Card page उघडा
Hard link vs symlink?. Hard: same inode, same FS. Symlink: path, तुटू शकते. Release switch.
मुलाखत card: Hard link vs symlink? · PNG download करा · Card page उघडा
iptables ACCEPT काही करत नाही?. पहिला match जिंकतो. Numbers सह list. DROP च्या वर insert.
मुलाखत card: iptables ACCEPT काही करत नाही? · PNG download करा · Card page उघडा

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