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  2011-02-09 09:43:03

  general - Użytkownik

general
Użytkownik
Zarejestrowany: 2011-02-09

kopia tape

Z bashem nie miałem w życiu wiele do czynienia, dlatego mam prośbę aby ktoś doświadczony sprawdził poniższy skrypt

Kod:

#!/bin/bash
mt -f /dev/nst0 eod
/etc/init.d/jboss stop

while [ 1 ]; do
{
    if [ -z "$(pgrep jboss)" ]; then
    {
        tar -cf /dev/nst0 /srv/jboss_std/ "..." &
    }
    fi
    sleep 60
}
done

while [ 1 ]; do
{
    if [ -z "$(pgrep tar)" ]; then
    {
        /etc/init.d/jboss start "..." &
    }
    fi
    sleep 300
}
done

Ostatnio edytowany przez general (2011-02-11 14:50:38)

Offline

 

#2  2011-02-09 11:07:48

  tomii - Członek DUG

tomii
Członek DUG
Zarejestrowany: 2007-12-01

Re: kopia tape

żeby sprawdzić musisz napisać co to ma robić.

Offline

 

#3  2011-02-09 12:16:42

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: kopia tape

To co pisze tomii to raz, a dwa: pierwsza pętla jest nieskończona, więc druga nigdy się nie wykona. To chyba nie tak ma być?


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

#4  2011-02-09 13:57:04

  general - Użytkownik

general
Użytkownik
Zarejestrowany: 2011-02-09

Re: kopia tape

Sprawdzałem skrypt poleceniem bash -n skrypt.sh . W drugiej pętli trochę pokasowałem i wtedy pojawiały się błędy. Jednak czy mogę mieć pewność, że całość  się wykona.

Tomii. Skrypt ma wykonać pełną kopię katalogu /srv/jboss na taśmę. Najpierw jednak musi  zatrzymać proces jboos, który chula po plikach. Na sam koniec, czyli po skończonym zapisie, ma jbossa reaktywować.

Pierwsza pętla sprawdza czy jboos "zdechł" Jeżeli tak to  do akcji wkracza tar. Jeżeli nie to do czeka 1 minutę.
Druga pętla sprawdza tara i uruchamia jbossa.

Ostatnio edytowany przez general (2011-02-09 14:17:58)

Offline

 

#5  2011-02-09 14:06:04

  tomii - Członek DUG

tomii
Członek DUG
Zarejestrowany: 2007-12-01

Re: kopia tape

Nadal nie napisałeś co ma robić ten skrypt. Nie napisałeś jakie błędy się pojawiły. Co się ma wykonać?

Offline

 

#6  2011-02-09 14:14:40

  general - Użytkownik

general
Użytkownik
Zarejestrowany: 2011-02-09

Re: kopia tape

Te błędy nie są istotne. Ciachnąłem po prostu kawałek kodu w drugie pętli tylko po to, żeby sprawdzi czy bash -n rzuci coś w ekran.

Offline

 

#7  2011-02-09 14:27:53

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: kopia tape

[quote=general]Tomii. Skrypt ma wykonać pełną kopię katalogu /srv/jboss na taśmę. Najpierw jednak musi  zatrzymać proces jboos, który chula po plikach. Na sam koniec, czyli po skończonym zapisie, ma jbossa reaktywować.[/quote]
No to sprawa jest prosta:
1. zatrzymujesz proces jboss
1.a. opcjonalnie — upewniasz się że jboss nie działa (wysyłasz mu [tt]kill[/tt] tak długo, jak istnieje jakiś jego proces — tutaj jest miejsce na pętle). Jeśli jednak zatrzymanie daemona nie zawsze kończy działanie jboss, to znaczy że jboss jest poważnie spierdzielony i musisz mieć naprawdę solidne powody żeby go nadal używać.
2. Uruchamiasz tara.
3. Gdy tar zakończy pracę (możesz jeszcze sprawdzać status wyjścia -> sprawdź [url=http://forum.dug.net.pl/viewtopic.php?id=16830]ten wątek[/url]), ponownie uruchamiasz jboss

W całym skrypcie jest miejsce na najwyżej jedną pętlę. Poza tym po prostu wklejasz normalne polecenia które i tak byś wykonał chcąc osiągnąć założony cel.


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

#8  2011-02-10 10:07:51

  general - Użytkownik

general
Użytkownik
Zarejestrowany: 2011-02-09

Re: kopia tape

Zamiast pętli funkcje (?)

Kod:

#!/bin/bash
mt -f /dev/nst0 eod
/etc/init.d/jboss stop

kopia (){
    if [ -z "$(pgrep jboss)" ]; 
    then
        tar -cf /dev/nst0 /srv/jboss_std/
        exit
    fi
        sleep 60
        return     
}

jboss(){    
    if [ -z "$(pgrep tar)" ]; 
    then
        /etc/init.d/jboss start
        exit
    fi
        sleep 300
        return
}

Ostatnio edytowany przez general (2011-02-11 14:50:50)

Offline

 

#9  2011-02-10 11:29:29

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: kopia tape

Oh come on...

Kod:

#!/bin/bash
mt -f /dev/nst0 eod
/etc/init.d/jboss stop

while pgrep jboss >/dev/null 2>&1; do
    pkill jboss
    sleep 10
done

tar -cf /dev/nst0 /srv/jboss_std/

/etc/init.d/jboss start

Nie wiem w czym (i czy w ogóle) dotychczas programowałeś, ale albo niesamowicie utrudniasz proste zadania, albo to zadanie wcale nie jest takie banalne jakie się wydaje.

Nawiasem mówiąc, wrzucanie starowanej kopii na nośnik (taki jak taśma) nie jest najlepszym pomysłem. Jeśli uszkodzeniu ulegnie jakiś fragment taśmy, całe archiwum pójdzie się walić. No ale wychodzę z założenia że już to przemyślałeś i jesteś gotowy na taką niedogodność.


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

#10  2011-02-10 15:16:35

  general - Użytkownik

general
Użytkownik
Zarejestrowany: 2011-02-09

Re: kopia tape

Minio. Może tak.

/etc/init.d/jboss stop
tar -cf /dev/nst0 /srv/jboss_std/

Nie ma problemu z zamykaniem jboss-a, ale takie pytanie: czy tar wykona się dopiero wtedy  kiedy ten proces się zamknie?

Napęd i taśmy LTO3. Jedno z wielu zabezpieczeń.



http://www.radio3net.ro/dbalbums/albume1001/page:1 (zajrzyj tutaj)

Ostatnio edytowany przez general (2011-02-10 22:20:18)

Offline

 

#11  2011-02-10 21:48:12

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: kopia tape

[quote=general]Nie ma problemu z zamykaniem jboss-a, ale takie pytanie: czy tar wykona się dopiero kiedy ten proces się zamknie?[/quote]
Generalnie tak. Następne polecenie wykona się dopiero gdy zakończy się poprzednie. Z tym, że skrypt zamykający pracę jbossa może być tak napisany, że pozwala na wykonywanie następnych poleceń zanim rzeczywiście zakończy swoją pracę. Trudno powiedzieć, bo ja tego skryptu na oczy nie widziałem.

Na wszelki wypadek, jeśli możesz, to po komendzie [tt]jboss stop[/tt] daj jeszcze [tt]sleep[/tt] na kilka(naście) sekund. Nie powinno to być potrzebne, ale jeśli masz obawy, to nie zaszkodzi.

[quote=general]http://www.radio3net.ro/dbalbums/albume1001/page:1 (zajrzyj tutaj)[/quote]
Umm... po co? Bo niezbyt rozumiem co ta strona ma wspólnego z problemem. Nie pomyliłeś czasem linków? ;)


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

#12  2011-02-10 22:27:09

  general - Użytkownik

general
Użytkownik
Zarejestrowany: 2011-02-09

Re: kopia tape

"Muzyka ma dla mnie wyjątkowe znaczenie".[/quote]

Ostatnio edytowany przez general (2011-02-10 22:27:33)

Offline

 

#13  2011-02-10 23:16:02

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: kopia tape

[quote=general]

"Muzyka ma dla mnie wyjątkowe znaczenie".[/quote]
[/quote]
Muszę w końcu nową stronę napisać ;) .


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

#14  2011-02-11 00:42:04

  bercik - Moderator Mamut

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

Re: kopia tape

[quote=Minio]Nawiasem mówiąc, wrzucanie starowanej kopii na nośnik (taki jak taśma) nie jest najlepszym pomysłem. Jeśli uszkodzeniu ulegnie jakiś fragment taśmy, całe archiwum pójdzie się walić. No ale wychodzę z założenia że już to przemyślałeś i jesteś gotowy na taką niedogodność.[/quote]
nie w przypadku tar'a ... ten format byl tworzony z mysla o tasmach ... tam ogolnie jest zapisywany naglowek (informacje o pliku) oraz tresc pliku a potem kolejny itd ... uszkodzenie fragmentu spowoduje problem tylko w pliku na ktory trafilo ...


"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

 

#15  2011-02-11 00:49:35

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: kopia tape

[b]bercik[/b]: a może. Przede wszystkim nie zwróciłem uwagi, że tam jest sam tar, bez dodatkowej kompresji. Przyzwyczaiłem się że jak leci tar, to od razu z gzipem czy bzipem.
W takim razie wychodzi że palnąłem głupotę.


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

#16  2011-02-11 14:45:51

  general - Użytkownik

general
Użytkownik
Zarejestrowany: 2011-02-09

Re: kopia tape

#!/bin/bash
mt -f /dev/nst0 eod
/etc/init.d/jboss stop
/etc/init.d/pz stop
sleep 60
tar -cf /dev/nst0 /srv/jboss_std
/etc/init.d/jboss start
/etc/init.d/pz start

Ostatnio edytowany przez general (2011-02-22 10:00:28)

Offline

 

Stopka forum

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

[ Generated in 0.026 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00018 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00124 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.129.249.141' WHERE u.id=1
0.00117 UPDATE punbb_online SET logged=1716228428 WHERE ident='3.129.249.141'
0.00074 SELECT * FROM punbb_online WHERE logged<1716228128
0.00103 SELECT topic_id FROM punbb_posts WHERE id=165215
0.00801 SELECT id FROM punbb_posts WHERE topic_id=18268 ORDER BY posted
0.00134 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=18268 AND t.moved_to IS NULL
0.00018 SELECT search_for, replace_with FROM punbb_censoring
0.00413 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=18268 ORDER BY p.id LIMIT 0,25
0.00302 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=18268
Total query time: 0.02111 s