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

