Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-05-13 19:29:20

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16

skrypt do backupu

czy mozna to jakos jeszcze ulepszyc, uproscic itp.

Kod:

#!/bin/bash
declare -i MAILFAIL
MAILFAIL=0

if test `date +%A`="Friday"
then
    getfacl -R /home/*>/home/acl
    tar -c -g /var/log/backup`date +%Y-%m-%d`.log -f /tmp/backup-full-`date +%Y-%m-%d`.tar /home
    touch /var/log/backup/last-backup

elfi test -e /var/log/backup/last-backup
    getfacl -R /home*>/home/acl
    find /home -type f -newer /var/log/backup/last-backup | tar --null -c -g /var/log/backup/backup-`date +%Y-%m-%d`log -f /tmp/backup-diff-`date +%T-%m-%d`.tar -T -
fi

MAILLOG=/var/log/backup-`date +%Y-%m-%d`.log
MAILFAIL=`cat $MAILLOG | grep 'failed' | wc -l`
if($MAILFAILgt0)
then
    mail -s "BACKUP FAILED" root@server1.com
fi

Ostatnio edytowany przez pink (2010-05-13 19:29:46)


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
https://www.behance.net/przemyslawmamon

Offline

 

#2  2010-05-13 20:02:10

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: skrypt do backupu

pink napisał(-a):

Kod:

if test `date +%A`="Friday"

http://minio.jogger.pl/2009/11/21/popularne-bledy-p … ku-naturalnym

pink napisał(-a):

Kod:

MAILLOG=/var/log/backup-`date +%Y-%m-%d`.log
MAILFAIL=`cat $MAILLOG | grep 'failed' | wc -l`
if($MAILFAILgt0)
then
    mail -s "BACKUP FAILED" root@server1.com
fi

A to jest w ogóle jakiś potworek. Nie wiem jak wygląda zawartość pliku logu, ale powinno to wyglądać mniej-więcej tak:

Kod:

if grep -q failed /var/log/backup-$(date +%Y-%m-%d).log ; then
   mail -s "BACKUP FAILED" root@server1.com
fi

Z poprawką na to że musisz się upewnić że log będzie zawierał zwrot „failed”.

Ja bym po każdym poleceniu dawał

Kod:

wyjscie=$(($wyjscie + $?))

i na końcu

Kod:

if [ $wyjscie -ne 0 ]; then 
    mail -s "BACKUP FAILED" root@server1.com
fi

Rozważ jeszcze czy nie warto w załączniku maila o tym że kopia zapasowa się nie utworzyła załączać logu z wykonywania tejże kopii.

Offline

 

#3  2010-05-13 21:35:49

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: skrypt do backupu

Zamiast elfi oczywiście elif.


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#4  2010-05-15 12:52:16

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16

Re: skrypt do backupu

Kod:

#!/bin/bash

if test `date +%u`="5"
        then
            getfacl -R /home/*>/home/acl
            tar -c -g /var/log/backup-`date +%Y-%m-%d`.log -f /tmp/backup-full-`date +%Y-%m-%d`.tar /home
            touch /var/log/backup/last-backup

elif
         test -e /var/log/backup/last-backup
then
         getfacl -R /home*>/home/acl
             find /home -type f -newer /var/log/backup/last-backup | tar --null -c -g /var/log/backup/backup-`date +%Y-%m-%d`log -f /tmp/backup-diff-`date +%T-%m-%d`.tar -T -

        fi
if grep -q failed /var/log/backup-$(date +%Y-%m-%d).log ; then
   mail -s "BACKUP FAILED" root@server1.com
fi

a tak lepiej
no i jeszcze nie wiem jak to sprawdzic co by sie w tym logu znalazlo gdyby sie backup posypał


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
https://www.behance.net/przemyslawmamon

Offline

 

#5  2010-05-15 13:36:36

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: skrypt do backupu

pink napisał(-a):

no i jeszcze nie wiem jak to sprawdzic co by sie w tym logu znalazlo gdyby sie backup posypał

Minio napisał(-a):

Ja bym po każdym poleceniu dawał

Kod:

wyjscie=$(($wyjscie + $?))

i na końcu

Kod:

if [ $wyjscie -ne 0 ]; then 
    mail -s "BACKUP FAILED" root@server1.com
fi

tar Ci zwróci liczbę inną niż zero jeżeli coś się nie powiedzie.

Offline

 

#6  2010-05-15 13:44:51

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: skrypt do backupu

Przypisz date +%Y-%m-%d do zmiennej na początki skryptu i jej używaj, żeby nie wykonywać tej samej czynności kilkukrotnie. Nadto nietrudno wyobrazić sobie, że wykonywanie skryptu może się zakończyć następnego dnia.

no i jeszcze nie wiem jak to sprawdzic co by sie w tym logu znalazlo gdyby sie backup posypał

zatem dodaj warunek podczas wykonywania kopii — zamień
polecenie-wykonywania-kopii
na:

Kod:

if ! polecenie-wykonywania-kopii; then mail -s "BACKUP FAILED" root@server1.com (; exit?)l fi

Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#7  2010-05-21 12:33:54

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16

Re: skrypt do backupu

sorry chlopaki nie rozumiem co to ma byc to wyjsce???


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
https://www.behance.net/przemyslawmamon

Offline

 

#8  2010-05-21 12:48:06

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: skrypt do backupu

Wyjście
A co do tego co jest na wyjściu to

Kod:

man program

i będziesz mógł reagować w zależności od wyjścia


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#9  2010-06-11 13:49:31

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16

Re: skrypt do backupu

dobra moze mi ktos napisac jak to ma byc bo mnie szlak trafi.

chce sprawdzic czy plik istnieje i jak nie istnieje to wyslac maila "bacup failed".


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
https://www.behance.net/przemyslawmamon

Offline

 

#10  2010-06-11 14:56:56

  djjanek - Użytkownik

djjanek
Użytkownik
Skąd: whereis
Zarejestrowany: 2007-11-15
Serwis

Re: skrypt do backupu

Kod:

if [ -e "sciezka" ];then
  echo "Istnieje"
else
  echo "Nie istnieje"
fi

Offline

 

#11  2010-06-11 15:07:55

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16

Re: skrypt do backupu

to wiem ale mi chodzi aby sprawdzic wyjscie tar, czyli "0" istnieje i jest ok albo "gt 0" nie istnieje lub wystapily jakies bledy i wysla maila

Ostatnio edytowany przez pink (2010-06-11 15:09:42)


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
https://www.behance.net/przemyslawmamon

Offline

 

#12  2010-06-11 15:52:59

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: skrypt do backupu

Kod:

 
tar blebleble
EXIT_STATUS=$?
if [ ${EXIT_STATUS} -eq 0 ] 
then
 echo "huraaaa"
else
 echo "dupa ;("
fi

LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#13  2010-06-11 15:57:44

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16

Re: skrypt do backupu

o00000 juz cos blizej i jak obrazowo.

ten exit status to ma byc dokladnie po poleceniu tar????

i jak hurra mnie nie interesuje to wystarczy -gt 0

echo "dupaaaa" ???

Ostatnio edytowany przez pink (2010-06-11 16:01:43)


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
https://www.behance.net/przemyslawmamon

Offline

 

#14  2010-06-11 17:32:31

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: skrypt do backupu

tak zaraz po tarze bo inaczej $? zwroci wynik ifa
jezeli 0 Cie nie interesuje to

Kod:

if ! [ ${EXIT_STATUS} -eq 0 ]; then echo "dupa";fi

LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#15  2010-06-11 21:30:48

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: skrypt do backupu

winnetou napisał(-a):

Kod:

 
tar blebleble
EXIT_STATUS=$?
if [ ${EXIT_STATUS} -eq 0 ] 
then
 echo "huraaaa"
else
 echo "dupa ;("
fi

Tak naprawdę nie należy sprawdzać kodu wyjścia, a od razu wykonywać rzecz zależnie czy jest sukces, czy nie. Chyba, że akcji zależnych od kodu wyjścia jest kilka. Zatem:

Kod:

if tar blebleble
then
    echo "hura"
else
    echo "dupa"
fi

Minio chyba coś wspominał na ten temat: http://minio.jogger.pl/2009/11/21/popularne-bledy-p … ptow-powloki/

__

Kod:

if ! [ ${EXIT_STATUS} -eq 0 ]; then echo "dupa";fi

bój się bogów...

Kod:

if [ ${EXIT_STATUS} -ne 0 ]; then echo "dupa";fi

i jak hurra mnie nie interesuje to wystarczy -gt 0

zatem wystarczy prosta konstrukcja

Kod:

tar blebleble || echo dupa

Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#16  2010-06-11 21:37:56

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: skrypt do backupu

azhag napisał(-a):

Kod:

if ! [ ${EXIT_STATUS} -eq 0 ]; then echo "dupa";fi

bój się bogów...

Kod:

if [ ${EXIT_STATUS} -ne 0 ]; then echo "dupa";fi

Przyznaję bez bicia zapomniałem jak jest oznaczany różny od ;] cały czas miałem w głowie != z C/C++ dlatego taki kosmiczny wynalazek. Co do bezpośredniego używania polecenia w warunku if'a to osobiście tak właśnie robię w swoich "skryptach" (cóż za szumna nazwa) ale tutaj padło pytania o to co to exit status i inne - poza tym ja się nie znam, lama jestem i tyle.


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#17  2010-06-12 02:17:24

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: skrypt do backupu

@azhag

jedna uwaga natury ogolnej - jak polecenie zajmuje kilka linijek to IMHO czytelniej jest zrobic za nim test na $? niz wkladac je w if


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#18  2010-06-12 13:17:28

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16

Re: skrypt do backupu

jak rozumiem -eq 0 znaczy rowne 0 tzn polecenie zakonczylo sie sukcesem co mnie nie interesuje w przypadku tego skryptu.
-gt 0 wiecej niz zero czyli polecenie zakonczylo sie bledem i tu wysyla maila
czyli chyba powinno byc tak

Kod:

if [ ${EXIT_STATUS} -gt 0 ]; then echo "dupa";fi

bo caly czas piszecie mi -eq 0

i po co ten wykrzyknik po if ???

Ostatnio edytowany przez pink (2010-06-12 13:19:15)


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
https://www.behance.net/przemyslawmamon

Offline

 

#19  2010-06-12 14:39:24

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: skrypt do backupu

eq - równy
gt - większy
ne - różny (czyli np 1, 5 ale też i -10)
a wykrzyknik był negacją
więc w ifie wpisz ne lub tak jak powiedział azhag pisz w [ $(polecenie) ]


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#20  2010-06-12 15:17:32

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: skrypt do backupu

winnetou napisał(-a):

lub tak jak powiedział azhag pisz w [ $(polecenie) ]

azhag niczego takiego nie powiedział.


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#21  2010-06-12 15:21:33

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: skrypt do backupu

zasugerował :)


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#22  2010-06-12 15:28:14

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: skrypt do backupu

nic z tych rzeczy, azhag napisał

Kod:

if polecenie; then

ponieważ ma tu być tylko reakcja na błąd, to

Kod:

if ! polecenie; then

lub

Kod:

polecenie || coś

Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#23  2010-06-12 18:38:33

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16

Re: skrypt do backupu

czyli podwojny pipe || robi cala robote (tj: sprawdza czy polecenie zostalo wykonane poprawnie czy wystapil blad, mam rozumiec)???


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
https://www.behance.net/przemyslawmamon

Offline

 

#24  2010-06-12 20:02:32

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: skrypt do backupu

Tak. Podobnie jak if zresztą ([ jakiś warunek ] jest poleceniem, patrz man test).

W wersji uproszczonej można stosować łączniki poleceń && oraz ||. Pierwszy oznacza „oraz jeśli zakończy się sukcesem”, drugi „... błędem”.


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#25  2010-06-12 20:22:03

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16

Re: skrypt do backupu

no pelen szacun azhag, dzieki dla wszystkich - podejrzewam ze sie jeszcze odezwe w tym watku.


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
https://www.behance.net/przemyslawmamon

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)