/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
[Shell script] Exit status
Fra : Henrik S. Pedersen


Dato : 14-12-03 19:43




Jeg vil gerne lave backup nogle filsystemer, så backup'en ligger
på disk på en anden maskine (af hensyn til hurtig restore). Jeg
anvender Solaris.

Jeg bruger en kommando i retning af:

ufsdump 0uf - / | ssh <user>@<hostname> "cat>dump.out"

Det virker udmærket, men nu vil jeg gerne checke, at overførslen
er gået godt. Gode forslag modtages med tak, for hvordan checker
jeg exit status ($?) på både ufsdump og ssh?


En alternativ løsning er at dumpe til en lokal fil (på den maskine
der tages backup af), men det vil jeg helst undgå, da der i så
fald altid skal være diskplads nok. Hvis denne procedure vælges,
vil jeg gøre følgende:

ufsdump 0uf <lokal dumpfile> /
<check exit status $?>
cat <lokal dumpfile> | ssh <user>@<hostname> "cat>dump.out"
<lav en "sum" på den lokale og den overførte fil. Hvis de
er ens, er overførslen gået godt>

--
Mvh. Henrik


 
 
Kent Friis (14-12-2003)
Kommentar
Fra : Kent Friis


Dato : 14-12-03 20:06

Den Sun, 14 Dec 2003 19:43:27 +0100 skrev Henrik S. Pedersen:
>
>
>
>Jeg vil gerne lave backup nogle filsystemer, så backup'en ligger
>på disk på en anden maskine (af hensyn til hurtig restore). Jeg
>anvender Solaris.
>
>Jeg bruger en kommando i retning af:
>
>ufsdump 0uf - / | ssh <user>@<hostname> "cat>dump.out"
>
>Det virker udmærket, men nu vil jeg gerne checke, at overførslen
>er gået godt. Gode forslag modtages med tak, for hvordan checker
>jeg exit status ($?) på både ufsdump og ssh?

Hvis noget fejler, fx disk full, vil cat afbryde med en fejlmelding. Når
cat afsluttes, vil ssh lukke connection'en, og selv afslutte, hvilket
vil medføre at ufsdump stopper med fejlen "broken pipe" - medmindre
ufsdump vælger at ignorere dette signal, men i hvis den gør det, ville
jeg betragte det som en bug.

Mvh
Kent
--
Help test this great MMORPG game - http://www.eternal-lands.com/

Klaus Ellegaard (14-12-2003)
Kommentar
Fra : Klaus Ellegaard


Dato : 14-12-03 20:10

leeloo@phreaker.net (Kent Friis) writes:

>Hvis noget fejler, fx disk full, vil cat afbryde med en fejlmelding. Når
>cat afsluttes, vil ssh lukke connection'en, og selv afslutte, hvilket
>vil medføre at ufsdump stopper med fejlen "broken pipe" - medmindre
>ufsdump vælger at ignorere dette signal, men i hvis den gør det, ville
>jeg betragte det som en bug.

Hvad så hvis ufsdump fejler, f.eks. fordi disken har en fysisk defekt?

Mvh.
   Klaus.

Kent Friis (14-12-2003)
Kommentar
Fra : Kent Friis


Dato : 14-12-03 20:24

Den Sun, 14 Dec 2003 19:09:32 +0000 (UTC) skrev Klaus Ellegaard:
>leeloo@phreaker.net (Kent Friis) writes:
>
>>Hvis noget fejler, fx disk full, vil cat afbryde med en fejlmelding. Når
>>cat afsluttes, vil ssh lukke connection'en, og selv afslutte, hvilket
>>vil medføre at ufsdump stopper med fejlen "broken pipe" - medmindre
>>ufsdump vælger at ignorere dette signal, men i hvis den gør det, ville
>>jeg betragte det som en bug.
>
>Hvad så hvis ufsdump fejler, f.eks. fordi disken har en fysisk defekt?

Så fejler den netop også.

Pointen var at man kun behøver checke på om ufsdump fejler.

Mvh
Kent
--
Help test this great MMORPG game - http://www.eternal-lands.com/

Klaus Ellegaard (14-12-2003)
Kommentar
Fra : Klaus Ellegaard


Dato : 14-12-03 20:08

"Henrik S. Pedersen" <aaa_nospam@c.dk> writes:

>ufsdump 0uf - / | ssh <user>@<hostname> "cat>dump.out"

>Det virker udmærket, men nu vil jeg gerne checke, at overførslen
>er gået godt. Gode forslag modtages med tak, for hvordan checker
>jeg exit status ($?) på både ufsdump og ssh?

Det gør man ikke i en shell. I hvert fald ikke på en nævneværdig
portabel måde.

Men man kunne lave et lille script, der kører ufsdump-kommandoen
og tjekker exit status:

| #!/bin/sh
| ufsdump 0uf - /
|
| if [ $? -eq 0 ]
| then
| if [ -f /tmp/dump.resultat ]
| then
| rm /tmp/dump.resultat
| fi
| else
| echo >/tmp/dump.resultat "ufsdump failed miserably"
| fi

....og så pipe det ind i din ssh. Derefter kan du så tjekke den
temporære fil for evt. problemer

Det kan sikkert laves pænere, og jeg har ikke prøvet det. Men det
burde virke sådan nogenlunde sådandér.

Mvh.
   Klaus.

Kim Hansen (14-12-2003)
Kommentar
Fra : Kim Hansen


Dato : 14-12-03 22:51

"Henrik S. Pedersen" <aaa_nospam@c.dk> writes:

> Jeg bruger en kommando i retning af:
>
> ufsdump 0uf - / | ssh <user>@<hostname> "cat>dump.out"
>
> Det virker udmærket, men nu vil jeg gerne checke, at overførslen
> er gået godt. Gode forslag modtages med tak, for hvordan checker
> jeg exit status ($?) på både ufsdump og ssh?

Det kan gøres i bash ved at benytte PIPESTATUS.

--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.

Michael Zedeler (14-12-2003)
Kommentar
Fra : Michael Zedeler


Dato : 14-12-03 23:02

Henrik S. Pedersen wrote:

>
>
>
> Jeg vil gerne lave backup nogle filsystemer, så backup'en ligger
> på disk på en anden maskine (af hensyn til hurtig restore). Jeg
> anvender Solaris.
>
> Jeg bruger en kommando i retning af:
>
> ufsdump 0uf - / | ssh <user>@<hostname> "cat>dump.out"
>
> Det virker udmærket, men nu vil jeg gerne checke, at overførslen
> er gået godt. Gode forslag modtages med tak, for hvordan checker
> jeg exit status ($?) på både ufsdump og ssh?
>
>
> En alternativ løsning er at dumpe til en lokal fil (på den maskine
> der tages backup af), men det vil jeg helst undgå, da der i så
> fald altid skal være diskplads nok. Hvis denne procedure vælges,
> vil jeg gøre følgende:
>
> ufsdump 0uf <lokal dumpfile> /
> <check exit status $?>
> cat <lokal dumpfile> | ssh <user>@<hostname> "cat>dump.out"
> <lav en "sum" på den lokale og den overførte fil. Hvis de
> er ens, er overførslen gået godt>

Hvis det er rigtig vigtigt om de backups virker og du samtidig har plads
og CPU-tid, ville jeg ikke tøve med at gør det sidste som du beskriver
ovenfor. Samtidgi ville jeg nok indføre et trin hvor man checker at den
nyligt oprettede, lokale backup-fil er valid før at man overhovedet
prøver at overføre den.

At gøre det hele i ét hug kan helt sikkert godt lade sig gøre, men jeg
har svært ved at se hvordan at du vil validere at det er det rigtige
data der ligger i filen på den anden maskine, uden at skulle flytte alle
data tilbage til den maskine hvor de kommer fra for så at lave en
validering der.

Mvh. Michael.


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste