1. Vytvoření skriptu:
sudo mcedit skript
2. Hotový skript by měl vypadat asi takto:
3. Změna atributů skriptu (aby se dal spustit)
sudo chmod 777 skript
4. Spuštění skriptu
./skript
Varianty skriptů k maturitě:
A. Kolik bylo odesláno paketů na rozhrání eth0
ifconfig eth0|grep 'RX packets'|tr ':' ' '|awk '{print $3;}'| tr -d 'packets:'
B. Kolik bylo paketů odesláno na port 80
sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -L -v
sudo iptables -L -v|grep 'tcp dpt:http'|awk '{print $1;}'
Poznámka: Vymazání firewallu
sudo iptables -F
C. Zpracovani a rozparsovani textoveho souboru (Vytváření uživatelů z textového souboru)
Vytvoření textového souboru o těchto parametrech
sudo mcedit users.txt
Soubor bude vypadat např. nějak takto:
Vytvoření skriptu, který bude vypadat takto
#!/bin/bash filename='users.txt' echo Start cat $filename| while read line do bar=(`echo $line | tr ';' ' '`) echo ${bar[1]} done
D. Zálohování adresáře
#!/bin/bash datum=`date +%d%m%y`; tar cvfz /tmp/$datumzaloha.tar.gz /etc if [ "$?" -eq "0" ]; then logger "záloha OK" else logger "záloha NO" fi
E. Zálohování databáze
#!/bin/bash datum=`date +%d%m%y`; mysqldump -u root -p"heslo" --all-databases |gzip -c > /tmp/$datum-mysqlbackup.gz if [ "$?" -eq "0" ]; then logger "záloha OK" else logger "záloha NO" fi
Parsování proměnné do pole s oddělovacím znakem a vypsání na obrazovku
#!/bin/bash prom="moje prvni sluzba" echo "vystupni retezec :" $prom bar1=($prom) echo ${bar1[1]} echo "pocet prvku v poli" ${#bar1[@]} echo $prom "smazani prvku..." `echo $prom|tr -d 'prvni'` echo $prom "nahrada prvku..." `echo $prom|tr 'prvni' 'druha'`
Příklad v bashi a v pythonu
#!/usr/bin/python import os groups=os.popen("groups").read().split() #print groups for skupina in groups: if skupina == 'adm': print "uzivatel je ve skupine adminu"
a v bashi
#!/bin/bash if test -e "/tmp/zaloha";then echo "adresar existuje" else echo "adresar neexistuje, bude vytvoren" mkdir /tmp/zaloha fi bar=`groups` bar=($bar) for i in ${bar[@]};do #echo $i if [ $i = 'adm' ]; then echo "uzivatel je ve skupine" fi done