Bash to język skryptowy dostępny na praktycznie każdym systemie linuxowym. Według doświadczonych administratorów, kilkanaście dobrze napisanych skryptów może zaoszczędzić godziny pracy miesięcznie. Poniżej 15 praktycznych skryptów do codziennego użytku.
1. Backup katalogu z datą
#!/bin/bash
ZRODLO="$HOME/dokumenty"
CEL="/backup"
DATA=$(date +%Y%m%d_%H%M%S)
tar -czf "$CEL/backup_$DATA.tar.gz" "$ZRODLO"
echo "Backup zapisany: backup_$DATA.tar.gz"
2. Monitorowanie miejsca na dysku
#!/bin/bash
PROG=$(df / | awk NR==2{print $5} | tr -d %)
if [ "$PROG" -gt 85 ]; then
echo "UWAGA: Dysk zapełniony w $PROG%" | mail -s "Alert dysk" admin@przykład.pl
fi
3. Automatyczne aktualizacje (apt)
#!/bin/bash
apt update -qq
PAKIETY=$(apt list --upgradable 2>/dev/null | grep -c upgradable)
if [ "$PAKIETY" -gt 1 ]; then
apt upgrade -y -qq
echo "Zaktualizowano $PAKIETY pakietów" >> /var/log/auto-update.log
fi
4. Znajdź duże pliki
#!/bin/bash
PROG=${1:-/home}
LIMIT=${2:-100M}
echo "Pliki większe niż $LIMIT w $PROG:"
find "$PROG" -type f -size +$LIMIT -printf "%s %p
" | sort -rn | head -20 |
awk '{printf "%.1f MB %s
", $1/1048576, $2}'
5. Sprawdź dostępność usług
#!/bin/bash
USLUGI=("nginx" "mysql" "ssh" "docker")
for usluga in "${USLUGI[@]}"; do
if systemctl is-active --quiet "$usluga"; then
echo "✓ $usluga: działa"
else
echo "✗ $usluga: ZATRZYMANY"
systemctl start "$usluga" && echo " → uruchomiono"
fi
done
6–15: Więcej przydatnych skryptów
- Zmiana uprawnień rekurencyjnie:
find . -type f -exec chmod 644 {} ; && find . -type d -exec chmod 755 {} ; - Zliczanie linii kodu:
find . -name "*.php" | xargs wc -l | sort -rn | head - Szybkie SSH z alias: dodaj do
~/.bashrc:alias serwer='ssh user@192.168.1.100' - Backup MySQL:
mysqldump -u root -p baza | gzip > baza_$(date +%Y%m%d).sql.gz - Tail logów nginx w kolorach:
tail -f /var/log/nginx/access.log | grep --color -E "404|500|$"