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  2009-01-26 21:28:59

  skotx - Członek DUG

skotx
Członek DUG
Skąd: Olkusz
Zarejestrowany: 2008-01-22

skrypcik do backupu

Witam, mam taką mała sprawę. Nadziobałem sobie skrypcik do backupu i prosiłbym kogoś kumatego bardziej ode mnie o rzucenie okiem i ewentualną podpowiedź co poprawić.
Chciałem to napisać pod sh ale jakoś tak wyszło że działa tylko na bashu ;)
Chodzi mi tu bardziej o poprawność napisania tego, optymalizację niż żeby ten skrypt czynił cuda. Dla mnie to działa tak jak powinno, ale jednak coś mi się w nim nie podoba.

Wrzuciłem to na 2 linki bo nie chce zaśmiecać niepotrzebnie forum.

skrypt http://rafb.net/p/sTq8u053.html
mały konfig do niego http://rafb.net/p/dwQRMB24.html

Za wszelakie uwagi będę wdzięczny.
Pozdrawiam


Jeśli mam wysłuchiwać czyichś poglądów, to niech będą one wypowiedziane w formie twierdzącej, wątpliwości sam mam dosyć.

Offline

 

#2  2009-01-26 22:04:41

  azhag - Admin łajza

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

Re: skrypcik do backupu

przepisanie do "koszernego" sh nie stanowi raczej większego problemu ( BTW: polecam skrypt checkbashisms z któregoś z debianowo-deweloperskich pakietów):

1. wywal wszystkie funtion nazwa(), wystarczy samo nazwa()
2. if [ ! `${PING} &>/dev/null` ]
    a) nawiasów tu nie powinno być: if ! polecenie; then
    b) &>/dev/null zamień na >/dev/null 2>&1
3. pozbądź się bashowych tablic

Kod:

DIRECTORY_TO_ARCHIVE=(/bin /tmp/dupa)
        for (( x=0; x < ${#DIRECTORY_TO_ARCHIVE[@]}; x++ ));
                do
                        if [ ! -d  "${DIRECTORY_TO_ARCHIVE[${x}]}" ]; then
                                        error "${DIRECTORY_TO_ARCHIVE[${x}]} nie istnieje"
                fi
                done

zamień na coś takiego

Kod:

DIRECTORY_TO_ARCHIVE='/bin,/tmp/dupa'
for ELEMENT in `echo $DIRECTORY_TO_ARCHIVE | tr ',' ' '`; do
    echo $ELEMENT
done

nie polecam source'owania plików konfiguracyjnych (a jeśli już, raczej to robić poleceniem source niż ., "source" jest lepiej widoczne), tylko awkiem je przerabiać, o tak (awk dzięki uprzejmości uruga)

Kod:

    eval $(awk -F'=' '/.+=.+/{
             if ( $1 == "CODE" ||
                  $1 == "FORMAT" ||
                  $1 == "ICONSIZE" ||
                  $1 == "BROWSER" ||
                  $1 == "LOWTEMP" ||
                  $1 == "HITEMP" ||
                  $1 == "SCALE" )
             print $1 "=" $2 }' ${CONFIGFILE})

CODE, FORMAT... to kolejne nazwy zmiennych, które chcę wczytać z wartościami

poza tym przed wczytaniem konfigu sprawdź czy istnieje i da sie go odczytać, daj też w skrypcie wartości domyślne, na wypadek, gdyby się nie dało

to tak na szybko, jutro pewnie więcej :)

Ostatnio edytowany przez azhag (2009-01-26 22:06:42)


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

Offline

 

#3  2009-01-26 22:12:13

  skotx - Członek DUG

skotx
Członek DUG
Skąd: Olkusz
Zarejestrowany: 2008-01-22

Re: skrypcik do backupu

O wielki dzięki azhag. Właśnie te tablice mi się nie podobały a nie wiedziałem jak je ugryźć. Już zaczynam przeróbkę ;p Jak coś to będę pytał dalej.

Ostatnio edytowany przez skotx (2009-01-26 23:27:35)


Jeśli mam wysłuchiwać czyichś poglądów, to niech będą one wypowiedziane w formie twierdzącej, wątpliwości sam mam dosyć.

Offline

 

#4  2009-01-29 22:16:21

  skotx - Członek DUG

skotx
Członek DUG
Skąd: Olkusz
Zarejestrowany: 2008-01-22

Re: skrypcik do backupu

Dobra, wszystko gra i buczy ;) Mam jeszcze jedno pytanie bo męczę się z tym od 1,5 h i nie wiem jak to zrobić.

Kod:

debian:/home/skotik# df -h
System plików         rozm. użyte dost. %uż. zamont. na
/dev/sda2             6,6G  2,5G  4,1G  39% /
tmpfs                 474M     0  474M   0% /lib/init/rw
udev                   10M  108K  9,9M   2% /dev
tmpfs                 474M     0  474M   0% /dev/shm
/dev/sda1             183M   28M  146M  16% /boot
/dev/sda5             4,7G  2,7G  2,1G  57% /home
/dev/sda6              19G   12G  6,9G  63% /magazyn1
/dev/sda7              19G   11G  8,5G  55% /magazyn2
/dev/sda9              25G  6,5G   19G  26% /poligon

Chce dostać tylko informacje typu:" /dev/sda1 16%"  kolejno dla wszystkich partycji. Wydaje się banalnie proste ale nie doszedłem do tego na razie jak to wypisać nie zapisując wyniku polecenia do pliku.

Ostatnio edytowany przez skotx (2009-01-29 22:17:06)


Jeśli mam wysłuchiwać czyichś poglądów, to niech będą one wypowiedziane w formie twierdzącej, wątpliwości sam mam dosyć.

Offline

 

#5  2009-01-29 22:20:53

  azhag - Admin łajza

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

Re: skrypcik do backupu

Kod:

df -h | awk '/^\//{print $1" "$5}'

(tmpfs i udev rozumiem, że cię nie interesują?)


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

Offline

 

#6  2009-01-29 22:23:04

  skotx - Członek DUG

skotx
Członek DUG
Skąd: Olkusz
Zarejestrowany: 2008-01-22

Re: skrypcik do backupu

azhag napisał(-a):

Kod:

df -h | awk '/^\//{print $1" "$5}'

(tmpfs i udev rozumiem, że cię nie interesują?)

hehe byłem blisko ;) Oczywiście bez tego co napisałeś. Trzeba popracować więcej z awk bo bez tego ani rusz. Jeszcze raz dzięki.


Jeśli mam wysłuchiwać czyichś poglądów, to niech będą one wypowiedziane w formie twierdzącej, wątpliwości sam mam dosyć.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)