Wysłany przez nUmer dnia 2008-05-8 o 21:50
pobierz | nowy post
- #!/bin/bash
- ###############################################################################################
- # Program ten może być rozpowszechniany na zasadach licencji GPL2, której treść zawarta
- # jest na stronie http://www.gnu.org/licenses/gpl.html, nieoficjalne polskie tłumaczenie
- # na stronie http://gnu.org.pl/text/licencja-gnu.html.
- # autor: Nowak Roman
- ###############################################################################################
- program_name="rusznikarz"
- program_version="0.3"
- temp=`mktemp -t rusznikarz.$$_XXXXXX` || exit 1
- temp1=`mktemp -t rusznikarz.$$_XXXXXX` || exit 1
- umask 077
- IFS='
- '
- #exec 5>&2
- #exec 2>/dev/null
- ###############################################################################################
- katalog=`sed -n '/\[miejsce\ złożenia\ kopii\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[miejsce\ złożenia\ kopii\]/s/\[miejsce\ złożenia\ kopii\] \[\(.*\)\]/\1/p'` 2>/dev/null
- ilosc=`sed -n '/\[max\ ilość\ zachowanych\ kopii\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[max\ ilość\ zachowanych\ kopii\]/s/\[max\ ilość\ zachowanych\ kopii\] \[\(.*\)\]/\1/p'` 2>/dev/null
- backup_do_pliku=`sed -n '/\[wszystko\ do\ jednego\ pliku\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[wszystko\ do\ jednego\ pliku\]/s/\[wszystko\ do\ jednego\ pliku\] \[\(.*\)\]/\1/p'` 2>/dev/null
- backup_katalogi=`sed -n '/\[podziel\ na\ katalogi\ główne\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[podziel\ na\ katalogi\ główne\]/s/\[podziel\ na\ katalogi\ główne\] \[\(.*\)\]/\1/p'` 2>/dev/null
- backup_pm=`sed -n '/\[podziel\ na\ punkty\ montowania\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[podziel\ na\ punkty\ montowania\]/s/\[podziel\ na\ punkty\ montowania\] \[\(.*\)\]/\1/p'` 2>/dev/null
- uzytkownik=`sed -n '/\[użytkownik\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[użytkownik\]/s/\[użytkownik\] \[\(.*\)\]/\1/p'` 2>/dev/null
- grupa=`sed -n '/\[grupa\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[grupa\]/s/\[grupa\] \[\(.*\)\]/\1/p'` 2>/dev/null
- prawa=`sed -n '/\[prawa\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[prawa\]/s/\[prawa\] \[\(.*\)\]/\1/p'` 2>/dev/null
- suma_k=`sed -n '/\[utworzyć\ sumę\ kontrolną\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[utworzyć\ sumę\ kontrolną\]/s/\[utworzyć\ sumę\ kontrolną\] \[\(.*\)\]/\1/p'` 2>/dev/null
- wykluczyc=`sed -n '/\[wykluczyć\ z\ archiwum\]/p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "\
- |sed -n '/\[wykluczyć\ z\ archiwum\]/s/\[wykluczyć\ z\ archiwum\] \[\(.*\)\]/\1/p'` 2>/dev/null
- #
- #date=`date +%d.%m.%Y`
- date=`date +%Y.%m.%d`
- ###########################################################################
- exclude=`sed -n 's/-)\ //p' $HOME/.rusznikarzrc 2>/dev/null|sed -n 's/\/\</--exclude=\//p'|tr -s "\n" "\ "` 2>/dev/null
- opcje=`sed -n 's/-tar)\ //p' $HOME/.rusznikarzrc 2>/dev/null|sed -e 's/\ * /\ /g'` 2>/dev/null
- dir=`sed -n 's/-dir)\ //p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\ " "\n"|sed -n 's/\</\//p'` 2>/dev/null
- dir_n=`sed -n 's/-dir)\ //p' $HOME/.rusznikarzrc 2>/dev/null|tr -s "\t\ " "\ "|tr -s "\ " "\n"` 2>/dev/null
- pm=`sed -n 's/-pm)\ //p' $HOME/.rusznikarzrc 2>/dev/null|tr -s ";" "\n"`
- ###########################################################################
- # FUNKCJE
- ###########################################################################
- function program ()
- {
- # rozszerzenie nazwy archiwum w zależności od formatu kompresji
- # nazwa rozszerzenia
- sed -n 's/-tar)//p' $HOME/.rusznikarzrc|grep -w -e --bzip2 1>/dev/null
- spr0=$?
- sed -n 's/-tar)//p' $HOME/.rusznikarzrc|grep -w -e -j 1>/dev/null
- spr1=$?
- sed -n 's/-tar)//p' $HOME/.rusznikarzrc|grep -w -e --gzip 1>/dev/null
- spr2=$?
- sed -n 's/-tar)//p' $HOME/.rusznikarzrc|grep -w -e -z 1>/dev/null
- spr3=$?
- if [ "$spr0" = "0" ] || [ "$spr1" = "0" ] ; then
- roz_n=".tar.bz"
- elif [ "$spr2" = "0" ] || [ "$spr3" = "0" ] ; then
- roz_n=".tar.gz"
- else
- roz_n=".tar"
- fi
- # wszystko do pliku
- if [ "$backup_do_pliku" = "tak" ] && [ "$wykluczyc" = "nie" ] ; then
- if [ -d $katalog/$HOSTNAME-$date ] ; then
- eval tar "$opcje $katalog/$HOSTNAME-$date/$HOSTNAME$roz_n /"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$HOSTNAME.md5sum"
- fi
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- else
- mkdir -p $katalog/$HOSTNAME-$date
- eval tar "$opcje $katalog/$HOSTNAME-$date/$HOSTNAME$roz_n /"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$HOSTNAME.md5sum"
- fi
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- fi
- elif [ "$backup_do_pliku" = "tak" ] && [ "$wykluczyc" = "tak" ] ; then
- if [ -d $katalog/$HOSTNAME-$date ] ; then
- eval tar "$opcje $katalog/$HOSTNAME-$date/$HOSTNAME$roz_n $exclude /"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$HOSTNAME.md5sum"
- fi
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- else
- mkdir -p $katalog/$HOSTNAME-$date
- eval tar "$opcje $katalog/$HOSTNAME-$date/$HOSTNAME$roz_n $exclude /"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$HOSTNAME$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$HOSTNAME.md5sum"
- fi
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- fi
- fi
- # podziel na katalogi główne
- if [ "$backup_katalogi" = "tak" ] && [ "$wykluczyc" = "nie" ] ; then
- if [ -d $katalog/$HOSTNAME-$date ] ; then
- echo "$dir" >$temp
- linii=`cat "$temp"|wc -l`
- echo "$dir_n" >>"$temp"
- wiersz_nk=$[linii+1]
- x=1
- while [ "$x" -le "$linii" ] ; do
- kat=`sed -n "$x p" "$temp"`
- kat_n=`sed -n "$wiersz_nk p" "$temp"`
- eval tar "$opcje $katalog/$HOSTNAME-$date/$kat_n$roz_n $kat"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$kat$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$kat$roz_n.md5sum"
- fi
- x=$[x + 1]
- wiersz_nk=$[wiersz_nk + 1]
- done
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- else
- mkdir -p $katalog/$HOSTNAME-$date
- echo "$dir" >$temp
- linii=`cat "$temp"|wc -l`
- echo "$dir_n" >>"$temp"
- wiersz_nk=$[linii+1]
- x=1
- while [ "$x" -le "$linii" ] ; do
- kat=`sed -n "$x p" "$temp"`
- kat_n=`sed -n "$wiersz_nk p" "$temp"`
- eval tar "$opcje $katalog/$HOSTNAME-$date/$kat_n$roz_n $kat"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$kat$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$kat$roz_n.md5sum"
- fi
- x=$[x + 1]
- wiersz_nk=$[wiersz_nk + 1]
- done
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- fi
- elif [ "$backup_katalogi" = "tak" ] && [ "$wykluczyc" = "tak" ] ; then
- if [ -d $katalog/$HOSTNAME-$date ] ; then
- echo "$dir" >"$temp"
- linii=`cat "$temp"|wc -l`
- echo "$dir_n" >>"$temp"
- wiersz_nk=$[linii + 1]
- x=1
- while [ "$x" -le "$linii" ] ; do
- kat=`sed -n "$x p" "$temp"`
- kat_n=`sed -n "$wiersz_nk p" "$temp"`
- eval tar "$opcje $katalog/$HOSTNAME-$date/$kat_n$roz_n $exclude $kat"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$kat$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$kat$roz_n.md5sum"
- fi
- x=$[x + 1]
- wiersz_nk=$[wiersz_nk + 1]
- done
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- else
- mkdir -p $katalog/$HOSTNAME-$date
- echo "$dir" >"$temp"
- linii=`cat "$temp"|wc -l`
- echo "$dir_n" >>"$temp"
- wiersz_nk=$[linii + 1]
- x=1
- while [ "$x" -le "$linii" ] ; do
- kat=`sed -n "$x p" "$temp"`
- kat_n=`sed -n "$wiersz_nk p" "$temp"`
- eval tar "$opcje $katalog/$HOSTNAME-$date/$kat_n$roz_n $exclude $kat"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$kat_n$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$kat$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$kat$roz_n.md5sum"
- fi
- x=$[x + 1]
- wiersz_nk=$[wiersz_nk + 1]
- done
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- fi
- fi
- # podziel na punkty montowania
- if [ "$backup_pm" = "tak" ] && [ "$wykluczyc" = "nie" ] ; then
- if [ -d $katalog/$HOSTNAME-$date ] ; then
- echo "$pm" > $temp
- linii=`cat $temp|wc -l`
- x=1
- while [ $x -le $linii ] ; do
- kat=`sed -n "$x p" "$temp"`
- nazwa=`sed -n "$x p" "$temp"`
- pm_n=`basename "$nazwa"`
- if [ $pm_n = '/' ] ; then
- pm_n='system'
- fi
- eval tar "$opcje $katalog/$HOSTNAME-$date/$pm_n$roz_n $kat"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$pm_n$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$pm_n$roz_n.md5sum"
- fi
- x=$[x + 1]
- done
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- else
- mkdir -p $katalog/$HOSTNAME-$date
- echo $pm > $temp
- linii=`cat $temp|wc -l`
- x=1
- while [ $x -le $linii ] ; do
- kat=`sed -n "$x p" "$temp"`
- nazwa=`sed -n "$x p" "$temp"`
- pm_n=`basename "$nazwa"`
- if [ $pm_n = '/' ] ; then
- pm_n='system'
- fi
- eval tar "$opcje $katalog/$HOSTNAME-$date/$pm_n$roz_n $kat"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$pm_n$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$pm_n$roz_n.md5sum"
- fi
- x=$[x + 1]
- done
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- fi
- ############################
- elif [ "$backup_pm" = "tak" ] && [ "$wykluczyc" = "tak" ] ; then
- if [ -d $katalog/$HOSTNAME-$date ] ; then
- echo "$pm" > $temp
- linii=`cat $temp|wc -l`
- x=1
- while [ $x -le $linii ] ; do
- kat=`sed -n "$x p" "$temp"`
- nazwa=`sed -n "$x p" "$temp"`
- pm_n=`basename "$nazwa"`
- if [ $pm_n = '/' ] ; then
- pm_n='system'
- exclude2=`sed -n 's/-pm)\ //p' $HOME/.rusznikarzrc|sed -n 's/[;]\/[;]/;/p'|sed 's/;/\n/g'|sed -n 's/\/\</--exclude=\//p'|awk -F" " '{printf $1"/*" "\n"}'|tr -s "\n" "\ "`
- eval tar "$opcje $katalog/$HOSTNAME-$date/$pm_n$roz_n $exclude$exclude2 $kat"
- else
- eval tar "$opcje $katalog/$HOSTNAME-$date/$pm_n$roz_n $exclude $kat"
- fi
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$pm_n$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$pm_n$roz_n.md5sum"
- fi
- x=$[x + 1]
- done
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- else
- mkdir -p $katalog/$HOSTNAME-$date
- echo "$pm" > $temp
- linii=`cat $temp|wc -l`
- x=1
- while [ $x -le $linii ] ; do
- kat=`sed -n "$x p" "$temp"`
- nazwa=`sed -n "$x p" "$temp"`
- pm_n=`basename "$nazwa"`
- if [ $pm_n = '/' ] ; then
- pm_n='system'
- exclude2=`sed -n 's/-pm)\ //p' $HOME/.rusznikarzrc|sed -n 's/[;]\/[;]/;/p'|sed 's/;/\n/g'|sed -n 's/\/\</--exclude=\//p'|awk -F" " '{printf $1"/*" "\n"}'|tr -s "\n" "\ "`
- eval tar "$opcje $katalog/$HOSTNAME-$date/$pm_n$roz_n $exclude$exclude2 $kat"
- else
- eval tar "$opcje $katalog/$HOSTNAME-$date/$pm_n$roz_n $exclude $kat"
- fi
- chown $uzytkownik "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- chgrp $grupa "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- chmod $prawa "$katalog/$HOSTNAME-$date/$pm_n$roz_n"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/$pm_n$roz_n" > "$katalog/$HOSTNAME-$date/md5sum/$pm_n$roz_n.md5sum"
- fi
- x=$[x + 1]
- done
- ls -d $katalog/$HOSTNAME-*|sort -nr > $temp
- sed -n "$[ilosc+1],$ p" $temp|sort -nr > $temp1
- liczba=`cat $temp1|wc -l`
- x=1
- while [ $x -le $liczba ] ; do
- hosts=`sed -n "$x p" $temp1`
- eval "rm -rf $hosts"
- x=$[x + 1]
- done
- fi
- fi
- }
- ###########################################################################
- # kopia p-ych 512 bajtów każdej partycji
- function zarchiwizuj_MBR ()
- {
- fdisk -l|awk '{print $1}'|sed '1,7d'>$temp
- linie=`cat $temp|wc -l`
- x=1
- dysk=`sed -n "$x p" $temp`
- fdisk -l|awk '{print $1}'|sed -n '1,7d;s/\/dev\///p' >>$temp
- wiersz_n=$[linie + 1]
- # wykonaj kopię mbr+
- if [ -d "$katalog"/"$HOSTNAME-$date"/"MBR" ] ; then
- while [ $x -le $linie ] ; do
- nazwa_mbr=`sed -n "$wiersz_n p" $temp`
- archiwizuj=`dd if=$dysk of=$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr bs=512 count=1 2>/dev/null`
- $archiwizuj
- if [ $? = 0 ] ;then
- echo "::mbr_$nazwa_mbr : wykonano"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr"
- chgrp $grupa "$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr"
- chmod $prawa "$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/MBR/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr" > "$katalog/$HOSTNAME-$date/MBR/md5sum/mbr_$nazwa_mbr.md5sum"
- fi
- else
- echo "::mbr_$nazwa_mbr : wystąpił błąd"
- fi
- x=$[x + 1]
- wiersz_n=$[wiersz_n + 1]
- done
- echo "==>"$katalog"/"$HOSTNAME-$date"/"MBR""
- else
- mkdir -p "$katalog"/"$HOSTNAME-$date"/"MBR"
- while [ $x -le $linie ] ; do
- nazwa_mbr=`sed -n "$wiersz_n p" $temp`
- archiwizuj=`dd if=$dysk of=$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr bs=512 count=1 2>/dev/null`
- $archiwizuj
- if [ $? = 0 ] ;then
- echo "::mbr_$nazwa_mbr : wykonano"
- chown $uzytkownik "$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr"
- chgrp $grupa "$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr"
- chmod $prawa "$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr"
- if [ $suma_k = 'tak' ] ; then
- mkdir -p "$katalog/$HOSTNAME-$date/MBR/md5sum"
- md5sum "$katalog/$HOSTNAME-$date/MBR/mbr_$nazwa_mbr" > "$katalog/$HOSTNAME-$date/MBR/md5sum/mbr_$nazwa_mbr.md5sum"
- fi
- else
- echo "::mbr_$nazwa_mbr : wystąpił błąd"
- fi
- x=$[x + 1]
- wiersz_n=$[wiersz_n + 1]
- done
- echo "==>"$katalog"/"$HOSTNAME-$date"/"MBR""
- fi
- }
- ###########################################################################
- # utworzyć sumę kontrolną
- ###########################################################################
- # konfiguracja domyślna
- function konfiguracja ()
- {
- echo -ne "
- Wpisz ścieżkę do złożenia backupu:
- ==>\a"
- read wpis
- echo "
- >> Modyfikuj konfigurację poprzez edycję tego pliku <<
- >> rusznikarz v0.1 <<
- ###########################################################################
- [miejsce złożenia kopii] ["$wpis"]
- [max ilość zachowanych kopii] [3]
- ###########################################################################
- # Sposób wykonania kopii
- ###########################################################################
- # Zaznacz tylko jeden spośród trojga sposobów!:
- [wszystko do jednego pliku] [tak]
- [podziel na katalogi główne] [nie]
- [podziel na punkty montowania] [nie]
- -pm) /boot;/;/usr/portage;/var;/home
- ###########################################################################
- # Uprawnienia do archiwum
- [użytkownik] [root]
- [grupa] [root]
- [prawa] [400]
- ###########################################################################
- [utworzyć sumę kontrolną] [tak]
- ###########################################################################
- [opcje dla programu tar]
- -tar) --create --preserve --atime-preserve --totals --ignore-failed-read --bzip2 --verbose --file
- ###########################################################################
- # Wykluczyć z backupu - uzupełnij wg. poniższego przykładu:
- [wykluczyć z archiwum] [tak]
- -) /$USER/opera/cache4/*
- -) /$USER/.thumbnails/*
- -) /dev/*
- -) /mnt/cdrom/*
- -) /mnt/floppy/*
- -) /mnt/loop0/*
- -) /mnt/loop1/*
- -) /mnt/loop2/*
- -) /mnt/loop3/*
- -) /mnt/loop4/*
- -) /mnt/loop5/*
- -) /mnt/loop6/*
- -) /mnt/loop7/*
- -) /proc/*
- -) /sys/*
- -) /tmp/*
- ###########################################################################
- # Główne drzewo katalogów
- -dir) bin boot etc home lib mnt opt root sbin usr var
- ###########################################################################
- " > $HOME/.rusznikarzrc
- }
- ###########################################################################
- function pomoc ()
- {
- echo "
- -b wykonaj backup wg. danych z pliku konfiguracyjnego.
- -M zarchiwizuje pierwszych 512 bajtów każdej partycji.
- -r wygeneruje nowy domyślny plik konfiguracyjny.
- -h wyświetli tę pomoc.
- -v wyświetli wersję programu.
- "
- }
- ###########################################################################
- function version
- {
- echo "
- $program_name $program_version
- autor: nUmer_inaczej
- kontakt: as33@autograf.pl
- "
- }
- ###########################################################################
- while getopts bMrhv opt
- do
- case $opt in
- M) zarchiwizuj_MBR
- ;;
- r) konfiguracja
- ;;
- h) pomoc
- ;;
- b) program
- ;;
- v) version
- ;;
- esac
- done
- ###########################################################################
- trap "rm -f $temp $temp1" exit
Wyślij poprawioną bądź nową wersję poniżej lub utwórz nowy post.
Po wysłaniu poprawki, będziesz mógł/mogła w łatwy sposób porównać obydwie wersje.
