RSS

Skrypt archiwizujący i trzymający określoną ilość kopii

13 Paźdź

Skrypt wykonuje tylko tyle kopii ile chcemy, starsze są automatycznie zastępowane nowymi.
W miejscu gdzie jest funkcja if ( if [ $ile = 6 ] ) musimy podać wartość większą o 1 od tego ile chcemy żeby było kopii, dla 5 kopii wartość jaką tam musimy wpisać to 6.
Kopie są trzymane w /data
Zmienna co zawiera lokalizacje które mają być archiwizowane
Logi z pracy programu znajdują się w /var/log/syslog

#!/bin/bash
#Zmienne
ile=`ls -lt /data | wc -l`
ostatni=`ls -lt /data/ | tail -n 1 | awk '{ print $8 }'`
data=`date -R | awk -F" " '{print $2 $3 $4" "}'| cut -c1-9`
co="/home/bartek/Praca/CV /home/bartek/Pulpit /var/log/syslog"

logger OOOOOOOOOOOOOOOOOOOOOOOO
logger zaczynam wykonywac kopie

#Skrypt
if [ $ile = 6 ]
then
echo bede kasowac $ostatni
logger skasowalem $ostatni
rm -rf /data/$ostatni
else
echo "nie masz jeszcze 5 kopii"
logger nie masz jeszcze 5 kopii
fi

mkdir /data/$data
tar -zcf /tmp/kopia.tar.gz $co
mv /tmp/kopia.tar.gz /data/$data/

#Koniec
logger zakonczylem prace programu
logger dostepne kopie po zakonczeniu pracy programu
logger `ls /data`
logger OOOOOOOOOOOOOOOOOOOOOOOO

Przykładowy log po pracy programu :
Oct 13 08:39:37 asus logger: OOOOOOOOOOOOOOOOOOOOOOOO
Oct 13 08:39:37 asus logger: zaczynam wykonywac kopie
Oct 13 08:39:37 asus logger: skasowalem 042009
Oct 13 08:39:37 asus logger: zakonczylem prace programu
Oct 13 08:39:37 asus logger: dostepne kopie po zakonczeniu pracy programu
Oct 13 08:39:37 asus logger: 09Oct2009 10Oct2009 11Oct2009 12Oct2009 13Oct2009
Oct 13 08:39:37 asus logger: OOOOOOOOOOOOOOOOOOOOOOOO

Skrypt

Reklamy
 
3 Komentarze

Opublikował/a w dniu Październik 13, 2009 w linuks, Linux

 

Tagi:

3 responses to “Skrypt archiwizujący i trzymający określoną ilość kopii

  1. Krzysztof Filipiak

    Kwiecień 7, 2010 at 9:48 am

    zmienną data zamiast naokoło można zadeklarować tak:

    data=`date +%d%b%Y`

     
  2. lazowski

    Kwiecień 7, 2010 at 10:59 am

    date +%F -d”-10 day”

    można też tak, jeszcze łatwiej

     
  3. Krzysztof Filipiak

    Kwiecień 7, 2010 at 11:12 am

    Ale to nie jest to samo, mi chodzilo o uzyskanie dokladnie takiego samego formatu daty jak ten uzyty w skrypcie. Ale rzeczywiscie najprosciej i najbardziej czytelnie jest wg mnie: `date +%F`

     

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

 
%d blogerów lubi to: