Skripty

Vytvoření skriptů a jejich užití v systémech Linux/Unix

Úvodem

Pro vytváření skriptů je třeba mít základní znalost příkazů a minimálně se vyznat v systému. Skript obsahuje definovaného interpreta, který provede příkazy, které ve skriptu jsou. Dále obsahuje hlavní část skriptu a to jsou příkazy. Programátor má v tomto případě volné ruce a může využít veškeré síly unixových příkazů stejných jako v konzoli.

Skripty mohou být výkonní pomocníci každého administrátora unixového systému a díky nim si lze leccos ulehčit a zautomatizovat. Skvěle se hodí pro opakující se činnosti, výpisy a automatizační záležitosti.

Poznámky se mohou do skriptu psát dle libosti, ale musíme před ně umístit komentovací znak #.

Základ každého skriptu

Předpokladem pro spuštění skriptu je:

První skript

  1. Vytvoříme soubor například skript.sh
  2. Do souboru zapíšeme následující:
    #!/bin/bash
    # Muj prvni skript
    clear 
    echo "Ahoj světe!"
  3. Uděláme soubor skript.sh spustitelný pomocí chmod:
    chmod 777 skript.sh
  4. Spustíme náš první skript:
    ./skript.sh
  5. Skript vyčistí konzoli a napíše: Ahoj světe!

Skript pro výpis systémových informací

Níže vypsaný skript vypisuje systémové informace jako jsou:

Požadavkem pro plnou funkcionalitu je mít v systému níže vypsané programy, drtivá většina je samozřejmostí ve většině distribucí Linux/Unix.

Obsahem skriptu je:

#!/bin/bash
# Vypis systemovych informaci jako jsou: jadro, vydani OS, IP adresy, naslouchání portů, disky a paměť. Vyzaduje: uname, ip, netstat, df, free
clear 
echo ""
echo "==JADRO SYSTEMU=="
echo " "
uname -a
echo ""
echo "==VYDANI OS=="
echo " "
cat /etc/os-release
echo ""
echo "==SIT=="
echo ""
ip a | grep inet
echo ""
echo "==POSLOUCHA NA=="
echo ""
netstat -tnlup
echo ""
echo "==DISKY=="
echo ""
df -h
echo ""
echo "==PAMET=="
echo ""
free -h
echo "==KONEC=="

Smyčka pomocí while - synchronizace soft. RAIDu

Na příkladu mám softwarový raid u kterého probíhá synchronizace a já chci sledovat její průběh. Doba aktualizace je 5 sekund a jestliže synchronizace neběží, nic nevypisuje.

#!/bin/bash
while true
 do
  clear&&cat /proc/mdstat | grep sync &
  sleep 5
done

Začlenění skriptu mezi ostatní příkazy

Jestliže chceme, aby byl náš skript mezi ostatnímy příkazy a systém jej našel, musíme skript umístit do adresářů, které systém prohledává pro příkazy.

Výpis takových adresářů získáme příkazem echo $PATH:

echo $PATH

Klasické příklady adresářů, kam umístit spustitelný skript, jsou: