tak už mi to zalohuje složku home, ale ještě bych potřeboval aby se zachovaly pouze dvě zálohy (jedna zaloha ma 40 ) a zbytek smazal, jak to lze upravit?
#!/bin/bash
trap Prerusene INT
Prerusene()
{
echo
echo "Zalohovanie bolo prerusene uzivatelom!"
echo
exit
}
extractZnakVerzia()
{
najvacsieCislo=0
posunVerzia=$(($dlzkaStrFile - 4))
txtKon=${file:0:posunVerzia}
verzia=${txtKon:19}
}
extractZnakDatum()
{
posunZnak=$(($dlzkaStrFile - 17))
posunVerzia1=$(($dlzkaStrFile - $posunZnak))
txtKon1=${file:0:posunVerzia1}
extrDatum=${txtKon1:7}
}
NajvyssiaVerzia()
{
cislo=0
inc=0
for file in *.tgz; do
dlzkaStrFile=${#file}
case $dlzkaStrFile in
24 )
extractZnakVerzia
extractZnakDatum
if [ $extrDatum = $1 ]
then
inc=$(($inc + 1))
pVers[$inc]=$verzia
fi
;;
25 )
extractZnakVerzia
extractZnakDatum
if [ $extrDatum = $1 ]
then
inc=$(($inc + 1))
pVers[$inc]=$verzia
fi
;;
26 )
extractZnakVerzia
extractZnakDatum
if [ $extrDatum = $1 ]
then
inc=$(($inc + 1))
pVers[$inc]=$verzia
fi
;;
esac
done
dlzkaPoleVer=${#pVers[@]}
j=0
while [ $j -lt $dlzkaPoleVer ]; do
j=$(($j + 1))
if [ ${pVers[$j]} -gt $najvacsieCislo ] ; then
najvacsieCislo=${pVers[$j]}
fi
done
}
Titulok()
{
echo "##################################################"
echo "##################################################"
echo "## ##"
echo "## Zálohovanie systému v2.1 ##"
echo "## ##"
echo "## Pred inštaláciou vypnite všetky aplikácie ##"
echo "## ##"
echo "## created by existPierre ##"
echo "## ##"
echo "## 02.02.2008 ##"
echo "## ##"
echo "##################################################"
echo "##################################################"
echo
}
Zalohovat()
{
vCislo=1
txtZaloha="backup_"
suborDatum="`date +%d`_`date +%m`_`date +%Y`"
pripona=".tgz"
NajvyssiaVerzia $suborDatum
cVerzia="_v$najvacsieCislo"
celySuborNazov="$txtZaloha$suborDatum$cVerzia$pripona"
if test -e $celySuborNazov
then
echo -n "Najvyssia verzia je $najvacsieCislo, inkrementujem a vytvaram novu zalohu "
najvacsieCislo=$(($najvacsieCislo + 1))
cVerzia="_v$najvacsieCislo"
celySuborNazov="$txtZaloha$suborDatum$cVerzia$pripona"
echo $celySuborNazov
echo
echo -n "Proces zálohovania sa začne za: "
odpocit=5
for x in 1 2 3 4 5; do
echo -n "$odpocit "
odpocit=$(($odpocit - 1))
sleep 1.5
done
echo
if tar cvpzf $celySuborNazov --exclude=/bin --exclude=/boot --exclude=/dev --exclude=/etc --exclude=/hdd2 --exclude=/initrd --exclude=/lib --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/opt --exclude=/proc --exclude=/root --exclude=/sbin --exclude=/selinux --exclude=/srv --exclude=/sys --exclude=/tmp --exclude=/usr --exclude=/var --exclude=$cestaSkript$celySuborNazov /
then
echo
echo "Zálohovanie úspešne dokončené!"
else
echo
echo "Zálohovanie sa neskončilo korektne!"
fi
else
echo -n "Neexistuje zaloha pre den $suborDatum, vytvaram "
najvacsieCislo=1
cVerzia="_v$najvacsieCislo"
celySuborNazov="$txtZaloha$suborDatum$cVerzia$pripona"
echo $celySuborNazov
echo
echo -n "Proces zálohovania sa začne za: "
odpocit=5
for x in 1 2 3 4 5; do
echo -n "$odpocit "
odpocit=$(($odpocit - 1))
sleep 1.5
done
echo
if tar cvpzf $celySuborNazov --exclude=/bin --exclude=/boot --exclude=/dev --exclude=/etc --exclude=/hdd2 --exclude=/initrd --exclude=/lib --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/opt --exclude=/proc --exclude=/root --exclude=/sbin --exclude=/selinux --exclude=/srv --exclude=/sys --exclude=/tmp --exclude=/usr --exclude=/var --exclude=$cestaSkript$celySuborNazov /
then
echo
echo "Zálohovanie úspešne dokončené!"
else
echo
echo "Zálohovanie sa neskončilo korektne!"
fi
fi
}
clear
cestaSkript="/hdd2/backup"
if test -d $cestaSkript
then
cd $cestaSkript
if [ $# -eq 0 ]; then
Titulok
echo -n "Prajete si zálohovať systém?[a/n]: "
read zadanie
k=1
while [ $k -eq 1 ]; do
case $zadanie in
a | ano )
Zalohovat
k=0
;;
n | nie )
k=0
exit
;;
* )
echo -n "Napíš a/ano alebo n/nie: "
read zadanie
k=1
;;
esac
done
else
case $* in
--a | --ano )
Zalohovat
;;
--n | --nie )
exit
;;
--h | --help )
Titulok
echo "--a alebo --ano pre okamzite zalohovanie"
echo "--n alebo --nie pre zrusenie zalohovania"
echo "--h alebo --help pre pomoc"
echo "ctrl+c pre zrusenie zalohovania pocas jeho vykonavania "
echo
esac
fi
else
echo "Zadana cesta nebola najdena, program konci!"
exit 0
fi