/ 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
Fullbackup med tar laver fejl
Fra : Jan Eggen


Dato : 17-06-01 16:14

Hej.

Jeg har forsøgt at lave mit eget backup script som skulle lave en
fullbackup af hele serveren vha. tar til en SCSI DAT.
Jeg har tænkt mig at dette skulle være den eneste backup, som så kører
hver nat, da backup'en sagtens kan ligge på 1 bånd og kun kører i ca.
1 time.

Men i min testkørsel af scriptet fik jeg følgende fejl:

bash-2.04# ./FullBackup.script
/bin/tar: Removing leading `/' from member names
/bin/tar: /var/lib/mysql/mysql.sock: socket ignored
/dev/st0: Device or resource busy
/bin/tar: /var/spool/mail/je-mail: file changed as we read it
/bin/tar: Removing leading `/' from link names
/bin/tar: Error exit delayed from previous errors
[2]+ Done ./FullBackup.script
You have mail in /var/spool/mail/je

Scriptet ser således ud:

#!/bin/bash

dato=`date +%d`

rm /tmp/backup.log

echo "To: je@itai.dk" > /tmp/backup.log
echo "Subject: Backup Log" >> /tmp/backup.log
echo "From: Backup Script" >> /tmp/backup.log
echo "Fullbackup d. $dato" >> /tmp/backup.log

/bin/mt -f /dev/st0 rewind
/bin/tar -c -v -X /usr/local/etc/BackupfilesExcluded.txt -z -f
/dev/st0 / \
>> /tmp/backup.log
sleep 60
/bin/mt -f /dev/st0 offline

/usr/sbin/sendmail -t < /tmp/backup.log

Filen /usr/local/etc/BackupfilesExcluded.txt indeholder følgende:
/proc
/lib
/dev
/tmp
/cdrom
/var/tmp
/mnt

Så mit spørgsmål er om ovenstående fejl har nogen betydning, eller om
jeg blot kan ignorere dem.
Er det desuden en fornuftig måde at lave backup på (serveren kører
sendmail, apache og MySQL) eller er det noget jeg har overset?

På forhånd tak!

--
Med Venlig Hilsen, Jan Eggen
URL: http://www.eggen.dk/
E-mail: jan@eggen.dk * ICQ-UIN 3749663

 
 
Kent Friis (17-06-2001)
Kommentar
Fra : Kent Friis


Dato : 17-06-01 16:51

Den Sun, 17 Jun 2001 17:14:26 +0200 skrev Jan Eggen:
>Hej.
>
>Jeg har forsøgt at lave mit eget backup script som skulle lave en
>fullbackup af hele serveren vha. tar til en SCSI DAT.
>Jeg har tænkt mig at dette skulle være den eneste backup, som så kører
>hver nat, da backup'en sagtens kan ligge på 1 bånd og kun kører i ca.
>1 time.
>
>Men i min testkørsel af scriptet fik jeg følgende fejl:
>
>bash-2.04# ./FullBackup.script
>/bin/tar: Removing leading `/' from member names

Lav en "cd /" før tar-kommandoen, og skift "/" ud med "."

>/bin/tar: /var/lib/mysql/mysql.sock: socket ignored

Man kan vist nok ikke tage backup af en soket - den bliver oprettet
automatisk af det program der skal bruge den.

>/dev/st0: Device or resource busy

Prøv at fjerne "mt"-kommandoen før tar-kommandoen. /dev/st0 burde selv
spole båndet tilbage (men /dev/nst0 gør ikke) (jeg går ud fra det er
linux).

>/bin/tar: /var/spool/mail/je-mail: file changed as we read it

En eller anden fik en mail imens der blev taget backup af mail-filen.

>/bin/tar: Removing leading `/' from link names

Ignorer den.

>Filen /usr/local/etc/BackupfilesExcluded.txt indeholder følgende:
>/proc
>/lib
>/dev
>/tmp
>/cdrom
>/var/tmp
>/mnt

/lib og /bin er ca. lige vigtige for maskinen, så tag enten backup af
begge, eller ingen af dem - begge kan reetableres fra install-CD'en,
og begge er nødvendige for at maskinen kan boote...

>Så mit spørgsmål er om ovenstående fejl har nogen betydning, eller om
>jeg blot kan ignorere dem.
>Er det desuden en fornuftig måde at lave backup på (serveren kører
>sendmail, apache og MySQL) eller er det noget jeg har overset?

Umiddelbart ser det meget fornuftigt ud. Pas dog lidt på med MySQL -
det er vist ikke sundt at restore en backup af dens databaser, den skal
vist selv have lov at lave en dump af dem... Men det bør du kunne se
i MySQL manualen (ellers må en der har mere styr på MySQL hjælpe dig).

Mvh
Kent
--
http://www.celebrityshine.com/~kfr/

Jesper FA (17-06-2001)
Kommentar
Fra : Jesper FA


Dato : 17-06-01 22:48

Kent Friis wrote:

> Umiddelbart ser det meget fornuftigt ud. Pas dog lidt på med MySQL -
> det er vist ikke sundt at restore en backup af dens databaser, den skal
> vist selv have lov at lave en dump af dem... Men det bør du kunne se
> i MySQL manualen (ellers må en der har mere styr på MySQL hjælpe dig).

Jeg bruger selv cron til at lave en dump hver nat:
0 2 * * * /usr/bin/mysqldump -A --opt >
/var/export/mysqldump-`date -I` && echo mysqldump OK || echo mysqldump fejl

--
Jesper

Peter Makholm (18-06-2001)
Kommentar
Fra : Peter Makholm


Dato : 18-06-01 08:05

Jesper FA <news@skydiver.dk> writes:

> Jeg bruger selv cron til at lave en dump hver nat:
> 0 2 * * * /usr/bin/mysqldump -A --opt >
> /var/export/mysqldump-`date -I` && echo mysqldump OK || echo mysqldump fejl

Så skal man huske at ens backup-script skal køre et passende tidsrum
bagefter. Det er besværligt, især hvis man har flere ting, der skal
gøres før backup.


Jeg har lavet et lille backup-script, der sørger for at udføre en
række andre scripts før og efter den tager backup. Den udføre
simpelthen bare alle scriptene i /etc/backup.d/ før den udfører en
backup.

Dump af mysqldatabase eller replikering fra andre maskiner er så intet
problem og man skal ikke tænke på at sætte nok tid af til at gøre
opgaven færdig.

--
hash-bang-slash-bin-slash-bash

Jesper FA (18-06-2001)
Kommentar
Fra : Jesper FA


Dato : 18-06-01 13:00

Peter Makholm wrote:

>> Jeg bruger selv cron til at lave en dump hver nat:
>> 0 2 * * * /usr/bin/mysqldump -A --opt >
>> /var/export/mysqldump-`date -I` && echo mysqldump OK || echo mysqldump
>> fejl
>
> Så skal man huske at ens backup-script skal køre et passende tidsrum
> bagefter. Det er besværligt, især hvis man har flere ting, der skal
> gøres før backup.

Joo.. det er rigtigt nok. Nu har jeg ikke så mange ting der skal nås og den
dump jeg laver tager under 1 min..

> Jeg har lavet et lille backup-script, der sørger for at udføre en
> række andre scripts før og efter den tager backup. Den udføre
> simpelthen bare alle scriptene i /etc/backup.d/ før den udfører en
> backup.

Smart nok.. man kunne evt. lave det som rc?.d direne.. altså nummerere i
hvilken rækkefølge det skal ske i og så bare have selve backupen som en del
deri. Og hvis man har behov kunne man jo fint lave en backup.daily og en
backup.weekend e.l.

--
Jesper

Peter Makholm (18-06-2001)
Kommentar
Fra : Peter Makholm


Dato : 18-06-01 13:09

Jesper FA <news@skydiver.dk> writes:

> Joo.. det er rigtigt nok. Nu har jeg ikke så mange ting der skal nås og den
> dump jeg laver tager under 1 min..

Det tænkte jeg også, men så begyndte jeg at overveje at jeg senere let
skal til at hive en smule data over netværket. Og så mener jeg at det
er en lidt pænere løsning.

> Smart nok.. man kunne evt. lave det som rc?.d direne.. altså nummerere i

Jeg bruger Debians run-parts(8), det er lavet til den slags ting. Den
udfører også scriptene i lexiografisk orden.

> hvilken rækkefølge det skal ske i og så bare have selve backupen som en del
> deri. Og hvis man har behov kunne man jo fint lave en backup.daily og en
> backup.weekend e.l.

Vel, der bruger jeg bare en "if [ `date +%w` = 1 ] ; then". Det virker
ganske godt.

--
hash-bang-slash-bin-slash-bash

Jesper FA (18-06-2001)
Kommentar
Fra : Jesper FA


Dato : 18-06-01 17:28

Peter Makholm wrote:

>> Smart nok.. man kunne evt. lave det som rc?.d direne.. altså nummerere i
> Jeg bruger Debians run-parts(8), det er lavet til den slags ting. Den
> udfører også scriptene i lexiografisk orden.

Den kan jo stortset det jeg sagde.. den vil jeg da så bruge.

> Vel, der bruger jeg bare en "if [ `date +%w` = 1 ] ; then". Det virker
> ganske godt.

I de enkelte scripts mener du?

--
Jesper

Peter Makholm (18-06-2001)
Kommentar
Fra : Peter Makholm


Dato : 18-06-01 20:53

Jesper FA <news@skydiver.dk> writes:

> I de enkelte scripts mener du?

Ja. Det eneste jeg gør forskelligt det er at spytte båndet på de
rigtige dage. Så det er kun et enkelt script, der bruger det.

--
hash-bang-slash-bin-slash-bash

Jesper FA (18-06-2001)
Kommentar
Fra : Jesper FA


Dato : 18-06-01 22:35

Peter Makholm wrote:

>> I de enkelte scripts mener du?
>
> Ja. Det eneste jeg gør forskelligt det er at spytte båndet på de
> rigtige dage. Så det er kun et enkelt script, der bruger det.

Nu jeg lige tænker mig om så gør det ikke nogen forskel da min mysql server
og backup server er 2 forskellige maskiner. Jeg laver backup via Amanda der
selv suger filerne så og sige.

--
Jesper

Jan Eggen (19-06-2001)
Kommentar
Fra : Jan Eggen


Dato : 19-06-01 19:48

On Sun, 17 Jun 2001 15:50:34 +0000 (UTC), kfr@fleggaard.dk (Kent
Friis) wrote:

[KLIP]
>>/bin/tar: Removing leading `/' from member names
>
>Lav en "cd /" før tar-kommandoen, og skift "/" ud med "."

Det prøvede jeg, men så tog backup'en ikke højde for de filer jeg har
eksluderet i min exclude fil.
Men de skal måske istedet for f.eks. /tmp så hedde ./tmp?
Har det nogen praktisk betydning om jeg kalder tar kommandoen med
slash eller med punktum?
Restore syntax'en og de filer der bliver taget backup af er vel den
samme?

[KLIP]
>Prøv at fjerne "mt"-kommandoen før tar-kommandoen. /dev/st0 burde selv
>spole båndet tilbage (men /dev/nst0 gør ikke) (jeg går ud fra det er
>linux).

Jeps, det virker fint og ja det er en Linux (RH 7.0) jeg kører det på.

[KLIP - Ekskluderede filer]
>/lib og /bin er ca. lige vigtige for maskinen, så tag enten backup af
>begge, eller ingen af dem - begge kan reetableres fra install-CD'en,
>og begge er nødvendige for at maskinen kan boote...

Jeg har nogle andre brugere på serveren som også har root rettigheder
og der er en god chance for at de smider eksekverbare scripts på
lettere tilfældige stedet, så jeg tager /bin med alligevel (Better
safe then sorry)

Tak for tipsene indtil videre!

--
Med Venlig Hilsen, Jan Eggen
URL: http://www.eggen.dk/
E-mail: jan@eggen.dk * ICQ-UIN 3749663

Kent Friis (19-06-2001)
Kommentar
Fra : Kent Friis


Dato : 19-06-01 20:00

Den Tue, 19 Jun 2001 20:47:56 +0200 skrev Jan Eggen:
>On Sun, 17 Jun 2001 15:50:34 +0000 (UTC), kfr@fleggaard.dk (Kent
>Friis) wrote:
>
>[KLIP]
>>>/bin/tar: Removing leading `/' from member names
>>
>>Lav en "cd /" før tar-kommandoen, og skift "/" ud med "."
>
>Det prøvede jeg, men så tog backup'en ikke højde for de filer jeg har
>eksluderet i min exclude fil.
>Men de skal måske istedet for f.eks. /tmp så hedde ./tmp?
>Har det nogen praktisk betydning om jeg kalder tar kommandoen med
>slash eller med punktum?
>Restore syntax'en og de filer der bliver taget backup af er vel den
>samme?

Det gør (både for restore og exclude) at dine filer bliver backup'et
som "./etc/passwd" i stedet for "etc/passwd" (Eller "/etc/passwd", hvis
man har en ældre tar-version (farligt, for den vil som default blive
restoret i roden, uanset hvor du står)).

>[KLIP]
>>Prøv at fjerne "mt"-kommandoen før tar-kommandoen. /dev/st0 burde selv
>>spole båndet tilbage (men /dev/nst0 gør ikke) (jeg går ud fra det er
>>linux).
>
>Jeps, det virker fint og ja det er en Linux (RH 7.0) jeg kører det på.
>
>[KLIP - Ekskluderede filer]
>>/lib og /bin er ca. lige vigtige for maskinen, så tag enten backup af
>>begge, eller ingen af dem - begge kan reetableres fra install-CD'en,
>>og begge er nødvendige for at maskinen kan boote...
>
>Jeg har nogle andre brugere på serveren som også har root rettigheder
>og der er en god chance for at de smider eksekverbare scripts på
>lettere tilfældige stedet, så jeg tager /bin med alligevel (Better
>safe then sorry)

Skyd dem. De scripts skal kun ligge under /usr/local/bin eller $HOME/bin
- til gengæld må distributionen ikke røre /usr/local. Derved kan man
opgradere uden at risikere at få noget overskrevet.

Mvh
Kent
--
unsigned long main = 0xC8C70FF0;

Hroi Sigurdsson (17-06-2001)
Kommentar
Fra : Hroi Sigurdsson


Dato : 17-06-01 17:13

Jan Eggen wrote:

> Men i min testkørsel af scriptet fik jeg følgende fejl:
>
> bash-2.04# ./FullBackup.script
> /bin/tar: Removing leading `/' from member names

Helt fint. Ikke en fejl.

> /bin/tar: /var/lib/mysql/mysql.sock: socket ignored

Helt fint. Sockets kan ikke backes up.

> /dev/st0: Device or resource busy
> /bin/tar: /var/spool/mail/je-mail: file changed as we read it

Selvforklarende.

> /bin/tar: Removing leading `/' from link names
> /bin/tar: Error exit delayed from previous errors
> [2]+ Done ./FullBackup.script
> You have mail in /var/spool/mail/je
>
> Scriptet ser således ud:
>
> #!/bin/bash

Bvadr! Brug #!/bin/sh -e
-e gør at scriptet stopper ved fejl.

> dato=`date +%d`

Hvor bruger du denne?

> rm /tmp/backup.log

Put en -f på.

> echo "To: je@itai.dk" > /tmp/backup.log
> echo "Subject: Backup Log" >> /tmp/backup.log
> echo "From: Backup Script" >> /tmp/backup.log

Der skal en ekstra echo ind her for at separere header fra body.

> echo "Fullbackup d. $dato" >> /tmp/backup.log
[snip]
> Filen /usr/local/etc/BackupfilesExcluded.txt indeholder følgende:
> /proc
> /lib
^^^^ Meget vigtig!
> /dev
^^^^ Meget vigtig!
> /tmp
> /cdrom
> /var/tmp
> /mnt

Du kan også ekskludere /var/run.

> Så mit spørgsmål er om ovenstående fejl har nogen betydning, eller om
> jeg blot kan ignorere dem.
> Er det desuden en fornuftig måde at lave backup på (serveren kører
> sendmail, apache og MySQL) eller er det noget jeg har overset?

Det ville nok være en god ide at fixere mysql's datafiler mens du backer
up.

--
Hroi Sigurdsson
Fried ice cream is a reality! -- George Clinton

Jan Eggen (19-06-2001)
Kommentar
Fra : Jan Eggen


Dato : 19-06-01 19:57

On Sun, 17 Jun 2001 18:13:11 +0200, Hroi Sigurdsson <hroi@asdf.dk>
wrote:

[KLIP]
>> #!/bin/bash
>
>Bvadr! Brug #!/bin/sh -e
>-e gør at scriptet stopper ved fejl.

OK, det er skiftet nu.
Men betyder det ikke at jeg ikke får nogen e-mail hvis backup'en af en
eller anden grund ikke er gået godt?

>> dato=`date +%d`
>
>Hvor bruger du denne?

Lidt længere nede, hvor jeg skriver "Fullbackup d. $dato" i en mail
til mig selv.

>> rm /tmp/backup.log
>
>Put en -f på.
[KLIP]

Done.
Jeg kommer fra en AIX verden, hvor kommando'erne er lidt mindre
"brugervenlige", dvs. hvis man skriver rm et_eller_andet så er det
fordi man virkeligt mener det!
Til gengæld har den en meget smart indbygget backup, som jeg savner
lidt lige nu.

Tak for det indtil videre!

--
Med Venlig Hilsen, Jan Eggen
URL: http://www.eggen.dk/
E-mail: jan@eggen.dk * ICQ-UIN 3749663

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

Månedens bedste
Årets bedste
Sidste års bedste