Shell Scripting Complete 14: Ops, DevOps आणि Data Teams साठी 30 Real-World Bash Scripts
हा chapter Shell Scripting Complete 1 ते 13 मधलं सगळं कामाला लावतो. Ops, DevOps, data आणि support teams वापरतात अशा 30 real-world scripts: backups आणि cleanup, disk, CPU आणि memory checks, website आणि SSL monitoring, log reports, user आणि SSH audits, deploy helpers, file processing, database dumps, आणि छोटी रोजची tools. प्रत्येक script छोटी आहे, गरज तिथे set -euo pipefail वापरते, variables quote करते, आणि अगदी सोप्या English आणि पुणेरी मराठीत समजावली आहे. Copy करा, paths बदला, आणि आधी non-production machine वर test करा.
या chapter मध्ये तुम्ही काय शिकाल
- Files safely backup, rotate आणि clean
- Disk, memory, CPU, services, URLs आणि SSL monitor
- Log आणि user reports बनवा
- Deploy आणि rollback helpers लिहा
- CSV आणि bulk files process
- Standard script template reuse
1. रोजचं उदाहरण: घरातली toolbox
हे का लागतं?
प्रत्येक पुणेरी घरात छोटी toolbox असते: screwdriver, tester, tape, spanner. Tap गळतो म्हणून प्रत्येक वेळी नवीन tool घेत नाही; आहे तेच वापरतो. या 30 scripts तुमची toolbox आहे. Disk भरला, site down झाली किंवा report द्यायचा असेल तर योग्य script निवडा, दोन lines बदला आणि वापरा.
हे काय आहे?
Toolbox = हा script collection. प्रत्येक tool = एक script. वापरण्याआधी tool तपासणं = bash -n आणि shellcheck. Safety gloves = set -euo pipefail, quotes आणि dry run. Tools जागेवर ठेवणं = trap cleanup आणि logs.
कसं करायचं (step by step)
2. प्रत्येक script सुरू होते तो template
हे का लागतं?
प्रत्येक script मधे same header, logging आणि cleanup असलं की वाचायला सोपं आणि चालवायला safe.
हे काय आहे?
Script 1 एक template आहे: strict mode, log function, die, usage line, trap cleanup सह temp folder, आणि flock guard. या chapter मधल्या इतर scripts हे भाग गृहीत धरतात म्हणून छोट्या आहेत.
कसं करायचं (step by step)
- Script 1: template.sh.
#!/usr/bin/env bash
set -Eeuo pipefail
log(){ printf '%(%F %T)T [%s] %s\n' -1 "$1" "${*:2}" >&2; }
die(){ log ERROR "$*"; exit 1; }
(( $# >= 1 )) || { echo "usage: ${0##*/} TARGET" >&2; exit 2; }
exec 9>"/tmp/${0##*/}.lock"; flock -n 9 || die 'already running'
tmp=$(mktemp -d); trap 'rm -rf "$tmp"' EXIT
trap 'log ERROR "line $LINENO: $BASH_COMMAND"' ERR
log INFO "start target=$1"
Output:
2026-10-25 12:00:00 [INFO] start target=web1
याचा अर्थ: आधी हा copy करा.
3. Backup आणि cleanup (scripts 2-6)
हे का लागतं?
हरवलेला data आणि भरलेला disk या दोन सगळ्यात common emergencies.
हे काय आहे?
या scripts dated archives बनवतात, फक्त शेवटचे N ठेवतात, आधी dry run करून जुन्या files delete करतात, logs rotate करतात आणि folders दुसऱ्या server ला sync करतात.
कसं करायचं (step by step)
- Script 2: dated backup.
src=${1:?folder}; dst=/backup
f="$dst/${src##*/}-$(date +%F_%H%M).tgz"
tar czf "$f" -C "${src%/*}" "${src##*/}" && echo "saved $f $(du -h "$f" | cut -f1)"
Output:
saved /backup/www-2026-10-25_0200.tgz 412M
याचा अर्थ: नावात date आणि time.
- Script 3: शेवटचे 7 ठेवा.
ls -1t /backup/www-*.tgz | tail -n +8 | xargs -r rm -v --
Output:
removed '/backup/www-2026-10-17_0200.tgz'
याचा अर्थ: सगळ्यात जुनं गेलं.
- Script 4: dry run सह जुनं delete.
dir=${1:?}; days=${2:-30}; mode=${3:-dry}
if [[ $mode == run ]]; then find "$dir" -type f -mtime +"$days" -delete -print; else find "$dir" -type f -mtime +"$days" -print; fi | wc -l
Output:
148
याचा अर्थ: Check करूनच 'run' ने.
- Script 5: log rotate.
l=/var/log/app/app.log
cp "$l" "$l.$(date +%F)" && : > "$l" && gzip "$l.$(date +%F)"; ls /var/log/app
Output:
app.log app.log.2026-10-25.gz
याचा अर्थ: Copy, रिकामा, compress.
- Script 6: backup server ला sync.
rsync -az --delete --exclude '*.tmp' /srv/data/ backup@10.0.2.9:/vault/data/ && echo synced
Output:
synced
याचा अर्थ: फक्त बदल जातात.
4. Health checks (scripts 7-12)
हे का लागतं?
Users call करण्याआधी problem शोधणं हे monitoring चं मुख्य काम.
हे काय आहे?
प्रत्येक check clear line print करतो आणि काही चुकलं तर exit 1, म्हणून cron, timer किंवा monitor alert करू शकतो.
कसं करायचं (step by step)
- Script 7: सगळे disks.
rc=0; while read -r use mnt; do use=${use%\%}; (( use > 85 )) && { echo "FULL $mnt ${use}%"; rc=1; }; done < <(df -P -x tmpfs -x devtmpfs | awk 'NR>1{print $5, $6}'); exit $rc
Output:
FULL /var 91%
याचा अर्थ: प्रत्येक mount check.
- Script 8: memory.
avail=$(awk '/MemAvailable/{print int($2/1024)}' /proc/meminfo); (( avail < 300 )) && { echo "LOW MEM ${avail}MB"; exit 1; }; echo "mem ok ${avail}MB"
Output:
mem ok 1840MB
याचा अर्थ: MemAvailable योग्य number.
- Script 9: load vs CPUs.
read -r l1 _ < /proc/loadavg; c=$(nproc); (( $(echo "$l1 > $c" | bc) )) && echo "HIGH load $l1 on $c cpus" || echo "load ok $l1"
Output:
load ok 0.42
याचा अर्थ: CPU count पेक्षा जास्त load busy.
- Script 10: services up.
for s in nginx sshd crond; do systemctl is-active --quiet "$s" || { echo "DOWN $s"; sudo systemctl restart "$s"; }; done
Output:
DOWN nginx
याचा अर्थ: Down असेल तर restart.
- Script 11: URL check.
while read -r u; do code=$(curl -s -o /dev/null -w '%{http_code} %{time_total}' --max-time 10 "$u"); echo "$u $code"; done < urls.txt
Output:
https://shop.example.in 200 0.31
https://api.example.in/health 503 0.05
याचा अर्थ: Status आणि time.
- Script 12: SSL expiry.
h=${1:?host}; end=$(echo | openssl s_client -servername "$h" -connect "$h:443" 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
days=$(( ( $(date -d "$end" +%s) - $(date +%s) ) / 86400 )); echo "$h $days days"; (( days > 15 ))
Output:
shop.example.in 54 days
याचा अर्थ: 15 दिवसांखाली exit 1.
5. Log reports (scripts 13-16)
हे का लागतं?
Managers 'आज किती errors' आणि 'कोण hit करतंय' विचारतात; logs मधे उत्तर असतं.
हे काय आहे?
grep, awk, sort आणि uniq वापरून web आणि app logs count, rank आणि summarise करतात, आणि keyword साठी log live बघतात.
कसं करायचं (step by step)
- Script 13: top IPs आणि URLs.
log=${1:-/var/log/nginx/access.log}
echo 'Top IPs'; awk '{print $1}' "$log" | sort | uniq -c | sort -rn | head -5
echo 'Top URLs'; awk '{print $7}' "$log" | sort | uniq -c | sort -rn | head -5
Output:
Top IPs
540 49.36.12.8
Top URLs
902 /
याचा अर्थ: दोन rankings.
- Script 14: status code summary.
awk '{c[$9]++} END{for(k in c) printf "%s %d\n", k, c[k]}' /var/log/nginx/access.log | sort
Output:
200 8812
404 120
500 7
याचा अर्थ: आज किती healthy.
- Script 15: तासाप्रमाणे errors.
grep ' ERROR ' app.log | awk '{print substr($2,1,2)":00"}' | sort | uniq -c
Output:
3 09:00
41 10:00
याचा अर्थ: 10 ला spike.
- Script 16: बघा आणि alert.
tail -Fn0 /var/log/app/app.log | while read -r line; do [[ $line == *'OutOfMemory'* ]] && logger -t oomwatch -p user.err "$line"; done
याचा अर्थ: कायम चालतो; service वापरा.
6. Users आणि security (scripts 17-20)
हे का लागतं?
Audits कोण login करू शकतं, कोणाचं login fail झालं, आणि कोणत्या files सगळ्यांना उघड्या ते विचारतात.
हे काय आहे?
या scripts खरे users list करतात, IP प्रमाणे failed SSH logins मोजतात, CSV मधून users बनवतात, आणि world-writable files शोधतात.
कसं करायचं (step by step)
- Script 17: human users.
awk -F: '$3>=1000 && $7 !~ /nologin|false/ {print $1, $6, $7}' /etc/passwd
Output:
ec2-user /home/ec2-user /bin/bash
asha /home/asha /bin/bash
याचा अर्थ: Shell सह UID 1000+.
- Script 18: IP प्रमाणे failed SSH.
journalctl -u sshd --since today | grep -oP 'Failed password .* from \K[0-9.]+' | sort | uniq -c | sort -rn | head
Output:
212 185.220.101.4
18 45.95.147.2
याचा अर्थ: Attackers rank.
- Script 19: CSV मधून users.
while IFS=, read -r user group; do [[ $user == user ]] && continue; id "$user" &>/dev/null || sudo useradd -m -G "$group" "$user" && echo "ok $user"; done < new-users.csv
Output:
ok rahul
ok meera
याचा अर्थ: Header आणि existing skip.
- Script 20: world-writable files.
sudo find / -xdev -type f -perm -0002 ! -path '/proc/*' -print 2>/dev/null | head
Output:
/opt/app/conf/db.yml
याचा अर्थ: chmod o-w ने fix.
7. Deploy helpers (scripts 21-24)
हे का लागतं?
Quick rollback सह repeatable deploy नेहमीच careful manual deploy पेक्षा चांगला.
हे काय आहे?
current symlink सह release folders instant rollback देतात. Switch नंतरचा health check ठेवायचं की rollback ते ठरवतो. Parallel command runner आणि wait-for-port helper set पूर्ण करतात.
कसं करायचं (step by step)
- Script 21: symlink deploy.
rel=/srv/app/releases/$(date +%Y%m%d%H%M); mkdir -p "$rel"
tar xzf app.tgz -C "$rel"
ln -sfn "$rel" /srv/app/current && sudo systemctl reload app && echo "live $rel"
Output:
live /srv/app/releases/202610251230
याचा अर्थ: Atomic switch.
- Script 22: rollback.
prev=$(ls -1d /srv/app/releases/* | sort | tail -2 | head -1); ln -sfn "$prev" /srv/app/current && sudo systemctl reload app && echo "rolled back to $prev"
Output:
rolled back to /srv/app/releases/202610241100
याचा अर्थ: आधीचा release.
- Script 23: अनेक hosts वर.
cmd=${1:?command}; while read -r h; do ssh -o ConnectTimeout=5 "$h" "$cmd" 2>&1 | sed "s/^/[$h] /" & done < hosts.txt; wait
Output:
[web1] active
[web2] active
याचा अर्थ: Prefix सह output.
- Script 24: port साठी थांबा.
h=${1:?}; p=${2:?}; for i in {1..30}; do (echo > "/dev/tcp/$h/$p") 2>/dev/null && { echo "$h:$p open"; exit 0; }; sleep 2; done; echo "$h:$p closed"; exit 1
Output:
db1:5432 open
याचा अर्थ: nc नको.
8. Files आणि data (scripts 25-28)
हे का लागतं?
Teams ना रोज CSVs, images आणि dumps मिळतात ज्यांना same छोटं processing लागतं.
हे काय आहे?
या scripts key प्रमाणे CSV column total करतात, checksum ने duplicate files शोधतात, safely bulk rename करतात, आणि dated, compressed नावाने database dump करतात.
कसं करायचं (step by step)
- Script 25: शहराप्रमाणे CSV totals.
awk -F, 'NR>1{s[$2]+=$3} END{for(c in s) printf "%-10s %10.2f\n", c, s[c]}' sales.csv | sort -k2 -nr
Output:
Pune 184500.00
Nagpur 92010.50
याचा अर्थ: Key प्रमाणे बेरीज.
- Script 26: duplicate files.
find "${1:-.}" -type f -exec md5sum {} + | sort | awk '$1==p{print $2} {p=$1}'
Output:
./photos/IMG_0012 (1).jpg
याचा अर्थ: Same checksum, extra copy.
- Script 27: safe bulk rename.
for f in *' '*; do n=${f// /_}; [[ -e $n ]] && { echo "skip $f"; continue; }; mv -- "$f" "$n"; done
Output:
skip Q3 report.pdf
याचा अर्थ: कधीच overwrite नाही.
- Script 28: database dump.
f=/backup/shop-$(date +%F).sql.gz; mysqldump --single-transaction shop | gzip > "$f" && echo "dump $(du -h "$f" | cut -f1)"
Output:
dump 88M
याचा अर्थ: pipefail dump errors पकडतो.
9. छोटी रोजची tools (scripts 29-30)
हे का लागतं?
एका command मधला server summary आणि quick menu रोज अनेक छोटी मिनिटं वाचवतात.
हे काय आहे?
Script 29 server report card print करते. Script 30 select आणि case सह menu आहे जो commands माहित नसलेल्या support staff साठी इतर scripts wrap करतो.
कसं करायचं (step by step)
- Script 29: server report card.
printf '%-10s %s\n' Host "$(hostname)" Uptime "$(uptime -p)" Load "$(cut -d' ' -f1-3 /proc/loadavg)" Mem "$(free -h | awk '/Mem/{print $3"/"$2}')" Disk "$(df -h / | awk 'NR==2{print $5}')" IP "$(hostname -I | cut -d' ' -f1)"
Output:
Host ip-10-0-1-5
Uptime up 9 days, 3 hours
Load 0.12 0.20 0.18
Mem 1.1Gi/3.8Gi
Disk 41%
IP 10.0.1.5
याचा अर्थ: एका नजरेत summary.
- Script 30: support menu.
PS3='Choose: '
select o in 'Disk check' 'Restart nginx' 'Last errors' Quit; do
case $REPLY in
1) df -h ;;
2) sudo systemctl restart nginx && echo restarted ;;
3) journalctl -p err -n 20 --no-pager ;;
4) break ;;
esac
done
Output:
1) Disk check
2) Restart nginx
3) Last errors
4) Quit
Choose: 2
restarted
याचा अर्थ: फक्त safe actions.
10. अनेक industries मधली खरी उदाहरणं
हे का लागतं?
तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.
हे काय आहे?
प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.
कसं करायचं (step by step)
| Team आणि शहर | ते कसं वापरतात | Command |
|---|---|---|
| Rutuja, co-op bank, Pune | Core files साठी रोज रात्री Script 2 + 3 | tar czf "$f" ... |
| James, university, Cambridge | Script 18 weekly SSH audit | grep -oP 'Failed password .* from \K[0-9.]+' |
| Sakura, retail, Osaka | 40 shops साठी Script 12 SSL expiry | openssl x509 -noout -enddate |
| Omar, airline, Dubai | Script 21/22 release आणि rollback | ln -sfn "$rel" /srv/app/current |
| Camila, fintech, Mexico City | pipefail सह Script 28 dump | mysqldump --single-transaction shop | gzip |
| Ganesh, textile mill, Ichalkaranji | Shop-floor PCs साठी Script 29 report card | uptime -p |
11. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
rm deleted the wrong files | Path मधे रिकामा variable | ${dir:?} आणि dry run.find "${dir:?}" -mtime +30 -print |
tar: Removing leading '/' | Absolute paths | -C ने base set.tar czf f.tgz -C /srv www |
xargs: rm: missing operand | रिकामी list | -r जोडा.xargs -r rm -- |
curl: (28) Operation timed out | Host slow किंवा blocked | --max-time set करून report.curl --max-time 10 -s -o /dev/null -w '%{http_code}' URL |
date: invalid date | SSL date चा locale किंवा format | LC_ALL=C वापरा.LC_ALL=C date -d "$end" +%s |
ssh: connect to host port 22: Connection timed out | Host down किंवा firewall | ConnectTimeout जोडून skip.ssh -o ConnectTimeout=5 h |
mysqldump: Got error: 1045 Access denied | Credentials नाहीत | 600 mode सह ~/.my.cnf.chmod 600 ~/.my.cnf |
Dump file is tiny but script said ok | pipefail नाही | pipefail enable.set -o pipefail |
useradd: group does not exist | CSV मधला group नाही | आधी group बनवा.sudo groupadd devs |
12. Troubleshooting step by step
हे का लागतं?
घेतलेली script fail झाली तर logic आधी तिची assumptions तपासा.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- Paths आहेत?
ls -ld /backup /srv/app
- Tools install?
command -v rsync bc openssl mysqldump
- Permissions?
id; sudo -l
- Lint.
shellcheck script.sh
- Trace.
PS4='+ ${LINENO}: ' bash -x script.sh
- Logs.
journalctl -t script -n 50
13. Lab 1: Retention आणि report सह backup
हे का लागतं?
Scripts 2, 3 आणि 29 एकत्र करून folder backup करणारा, 3 copies ठेवणारा आणि summary print करणारा nightly job बनवा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Test data.
mkdir -p ~/lab50/www ~/lab50/backup && echo hi > ~/lab50/www/index.html
- Script.
cat > ~/lab50/nightly.sh <<'X'
#!/usr/bin/env bash
set -euo pipefail
src=$HOME/lab50/www; dst=$HOME/lab50/backup
f="$dst/www-$(date +%F_%H%M%S).tgz"
tar czf "$f" -C "${src%/*}" "${src##*/}"
ls -1t "$dst"/www-*.tgz | tail -n +4 | xargs -r rm --
printf 'saved %s, copies %d, disk %s\n' "${f##*/}" "$(ls "$dst" | wc -l)" "$(df -h / | awk 'NR==2{print $5}')"
X
chmod +x ~/lab50/nightly.sh && shellcheck ~/lab50/nightly.sh && echo lint-ok
Output:
lint-ok
- 5 वेळा.
for i in 1 2 3 4 5; do ~/lab50/nightly.sh; sleep 1; done
Output:
saved www-2026-10-25_123001.tgz, copies 1, disk 41%
...
saved www-2026-10-25_123005.tgz, copies 3, disk 41%
- फक्त 3.
ls ~/lab50/backup | wc -l
Output:
3
- Clean.
rm -r ~/lab50
14. Lab 2: Exit codes सह health check bundle
हे का लागतं?
Scripts 7, 8 आणि 11 एका runner मधून चालवा जो results गोळा करतो आणि कोणताही check fail झाला तर exit 1, timer साठी तयार.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Checks folder.
mkdir -p ~/checks && cd ~/checks && printf 'https://example.com\n' > urls.txt
- दोन checks.
printf '#!/usr/bin/env bash\navail=$(awk "/MemAvailable/{print int(\\$2/1024)}" /proc/meminfo); echo "mem ${avail}MB"; (( avail > 300 ))\n' > mem.sh
printf '#!/usr/bin/env bash\nwhile read -r u; do c=$(curl -s -o /dev/null -w %%{http_code} --max-time 10 "$u"); echo "$u $c"; [[ $c == 200 ]] || exit 1; done < urls.txt\n' > url.sh
chmod +x *.sh
- Runner.
cat > run-all.sh <<'X'
#!/usr/bin/env bash
rc=0
for c in ./mem.sh ./url.sh; do if out=$("$c" 2>&1); then echo "PASS $c: $out"; else echo "FAIL $c: $out"; rc=1; fi; done
exit $rc
X
chmod +x run-all.sh
- चालवा.
./run-all.sh; echo rc=$?
Output:
PASS ./mem.sh: mem 1840MB
PASS ./url.sh: https://example.com 200
rc=0
- एक तोडा.
echo https://example.com/nope-404 >> urls.txt; ./run-all.sh; echo rc=$?
Output:
PASS ./mem.sh: mem 1840MB
FAIL ./url.sh: https://example.com 200
https://example.com/nope-404 404
rc=1
- Clean.
cd ~ && rm -r ~/checks
Ravindra Bagale's Tip
Treat these 30 scripts as a starting kit, not finished products. Keep them in a git repo, run ShellCheck on every change, add a dry-run mode to anything that deletes or changes data, and schedule only after a few clean manual runs.
Ravindra Bagale's Tip – मराठी
या 30 scripts म्हणजे starting kit, तयार products नाहीत. त्या git repo मधे ठेवा, प्रत्येक बदलावर ShellCheck चालवा, delete किंवा data बदलणाऱ्या प्रत्येक गोष्टीला dry-run mode जोडा, आणि काही clean manual runs नंतरच schedule करा.
Ravindra Bagale's Tip – हिंदी
इन 30 scripts को starting kit मानिए, तैयार products नहीं. इन्हें git repo में रखिए, हर बदलाव पर ShellCheck चलाइए, delete या data बदलने वाली हर चीज़ में dry-run mode जोड़िए, और कुछ clean manual runs के बाद ही schedule कीजिए.
15. नेहमी विचारले जाणारे प्रश्न
प्र. Production मधे वापरू?
हो, testing आणि paths बदलून.
प्र. Python ऐवजी?
Complex logic किंवा APIs साठी Python.
प्र. कुठे ठेवायच्या?
Git repo आणि /usr/local/bin.
प्र. Secrets?
600 mode env files किंवा vault.
प्र. Mac compatible?
बहुतेक; date आणि stat flags वेगळे.
प्र. Alerting?
Exit 1 आणि monitor किंवा OnFailure.
प्र. /dev/tcp का?
Bash built-in port test.
प्र. Scripts test?
Unit tests साठी bats-core.
16. मुलाखत प्रश्न आणि उत्तरं
Beginner level
प्र. Dated file name?
नावात $(date +%F).
प्र. शेवटचे 7 backups?
ls -t | tail -n +8 | xargs -r rm.
प्र. URL check?
curl -w '%{http_code}'.
प्र. Human users list?
/etc/passwd वर UID 1000+ awk.
Mid level level
प्र. Instant rollback?
Release folders आणि symlink.
प्र. SSL days left?
openssl x509 -enddate आणि date maths.
प्र. Safe delete?
Dry run, ${dir:?}, आधी -print.
प्र. अनेक hosts वर?
Background ssh, wait.
Senior level
प्र. Scripts team-safe?
Template, CI lint, code review, logging.
प्र. bash कधी सोडायचा?
Complex data, APIs, long logic.
प्र. Scripts चं health?
Exit codes, timers, journald, alerts.
प्र. Partial deploys टाळा?
नव्या folder मधे extract, मग atomic symlink.
घरी करून बघा
- या chapter मधल्या पाच scripts निवडा, template header सह git repo मधे ठेवा, आणि सगळ्या ShellCheck pass करा.
- Script 29 दर सकाळी 9 ला systemd timer ने schedule करा आणि journalctl मधे output वाचा.
सराव Tasks
Nairobi Ride हा नैरोबी मधला वाहतूक व्यवसाय आहे. Wanjiru Kamau त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे KES मध्ये मोजले जातात आणि AWS resources af-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 21
सोपं Folder backup
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: Wanjiru Kamau Nairobi Ride मधे www folder gzip सह www.tgz मधे backup करतो.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Archive list
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: Extract न करता www.tgz मधल्या files list करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Disk usage
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: Filesystem type सह disk usage human sizes मधे दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Memory
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: Memory usage megabytes मधे दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं CPU count
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: सगळ्या installed CPUs ची संख्या print करा, या process ला available नसलेल्या सुद्धा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Service active
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: nginx active आहे का quietly check करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Link वाचा
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: /srv/app/current कुठे point करतो ते print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Uptime
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: Server कधीपासून up आहे ती date आणि time दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Server IP
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: hostname वापरून या host चं full domain name print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Folder sync
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: /srv/data/ archive mode आणि compression सह backup@10.0.2.9:/vault/data/ ला sync करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम जुन्या files
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: /var/tmp मधल्या 30 दिवसांपेक्षा जुन्या files delete न करता list करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम सगळ्यात मोठे folders
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: /var/log मधले size ने 5 सगळ्यात मोठे items दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम HTTP code
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: curl ने https://example.com चा फक्त HTTP status code print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Top IPs
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: access.log चे 5 सगळ्यात frequent first fields print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Human users
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: awk ने /etc/passwd मधून UID 0 असलेले user names print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Release switch
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: जुनी link बदलून /srv/app/current symlink /srv/app/releases/r42 ला point करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Checksums
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: या folder मधल्या सगळ्या .jpg files चे md5 checksums print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड SSL end date
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: cert.pem मधल्या certificate ची expiry date print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड World-writable
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: /opt मधल्या सगळ्यांना write करता येणाऱ्या regular files शोधा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड CSV totals
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: tail आणि awk ने header line सोडून sales.csv च्या column 3 ची बेरीज करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Menu
का: BIZ proven scripts चं kit reuse करतो.
काय करायचं: opt variable मधे start आणि stop options असलेला select menu सुरू करा, choice echo करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
17. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- Template पासून सुरू.
- Backups: date, retention, rsync.
- Problems वर checks exit 1.
- Logs: awk, sort, uniq.
- Symlink आणि rollback सह deploy.
- Lint, dry run, मग schedule.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








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