/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
daglig backup af alle MySQL databaser med ~
Fra : Thomas D


Dato : 28-06-03 13:14

Hej,

Denne post er sendt til
dk.edb.system.unix og dk.edb.database med FUT til dk.edb.system.unix, da jeg
mener at den er relevant for begge grupper.

Jeg vil gerne vide hvordan jeg nemmmest tager en daglig backup af alle mine
databaser (både struktur og indhold) med crond (eller andet hvis der er
noget der er mere smart).

Jeg havde forestillet mig et shellscript som logger ind i mysql som root og
dumper alle databaserne ned i nogle text-filer og så pakker dem ned med
bzip2.

Jeg er dog ikke helt klar over hvordan jeg skal lave det.

Håber at kunne få nogle forslag fra jer.

En anden ting jeg bekymrer mig lidt om er hvordan passworded til root i
mysql kan gemmes så det ikke står i cleartext, læseligt for enhver når det
skal indgå i scriptet.

Mvh
Thomas



 
 
Rasmus Bøg Hansen (28-06-2003)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 28-06-03 13:28

"Thomas D" <dinadur@hotmail.com> writes:

> Jeg vil gerne vide hvordan jeg nemmmest tager en daglig backup af alle mine
> databaser (både struktur og indhold) med crond (eller andet hvis der er
> noget der er mere smart).

mysqldump.

/Rasmus

--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
Defense??
What am I to defend??
Am I in war??
----------------------------------[ moffe at amagerkollegiet dot dk ] --

Johan Holst Nielsen (28-06-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 28-06-03 13:28

Thomas D wrote:
> Hej,
>
> Denne post er sendt til
> dk.edb.system.unix og dk.edb.database med FUT til dk.edb.system.unix, da jeg
> mener at den er relevant for begge grupper.
>
> Jeg vil gerne vide hvordan jeg nemmmest tager en daglig backup af alle mine
> databaser (både struktur og indhold) med crond (eller andet hvis der er
> noget der er mere smart).
>
> Jeg havde forestillet mig et shellscript som logger ind i mysql som root og
> dumper alle databaserne ned i nogle text-filer og så pakker dem ned med
> bzip2.
>
> Jeg er dog ikke helt klar over hvordan jeg skal lave det.
>
> Håber at kunne få nogle forslag fra jer.
>
> En anden ting jeg bekymrer mig lidt om er hvordan passworded til root i
> mysql kan gemmes så det ikke står i cleartext, læseligt for enhver når det
> skal indgå i scriptet.


Well, der er dette...men der skal man vidst selv angive db'ere... burde
være nemt at ændre så den tager alle..
http://members.lycos.co.uk/wipe_out/automysqlbackup/

Men desværre er det således at der er passworded i clear tekst? Men
afaik så bruger mysql deres PASSWORD til at lave auth. af brugere (ikke
md5...). Så man burde kunne bygge sin egen klient til at tilgå mysql...

MySQL skriver også selv lidt om backup...
http://www.mysql.com/doc/en/Backup.html

Rent teknisk er det jo ret nemt...
mysqldump -Aa -u <username> -p <password> > backup.sql


Så det største problem er nok at skjule passworded... har ikke lige en
ide... måske kommer den :)

mvh
Johan


Adam Sjøgren (28-06-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 28-06-03 13:42


On Sat, 28 Jun 2003 14:28:08 +0200, Johan wrote:

> Rent teknisk er det jo ret nemt... mysqldump -Aa -u <username> -p
> <password> > backup.sql

'--add-drop-table' plejer også at være rart, hvis man hurtigt skal
kunne rulle backup.sql ind over en eksisterende ikke-tom database.


Mvh.

--
"Our voodoo-dolls are full of hopes" Adam Sjøgren
asjo@koldfront.dk

Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 13:48

> '--add-drop-table' plejer også at være rart, hvis man hurtigt skal
> kunne rulle backup.sql ind over en eksisterende ikke-tom database.

Hvad gør det helt præcist?

Mvh
Thomas



Jesper Krogh (28-06-2003)
Kommentar
Fra : Jesper Krogh


Dato : 28-06-03 14:27

I dk.edb.system.unix, skrev Thomas D:
> > '--add-drop-table' plejer også at være rart, hvis man hurtigt skal
> > kunne rulle backup.sql ind over en eksisterende ikke-tom database.
>
> Hvad gør det helt præcist?

Tilføjes en DROP TABLE "tablename" før "CREATE TABLE ...." i
backupfilen.

--
../Jesper Krogh, jesper@krogh.cc
Jabber ID: jesper@jabber.krogh.cc
Tøm din hjerne for Linuxviden på http://www.linuxwiki.dk


Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 14:35

> Tilføjes en DROP TABLE "tablename" før "CREATE TABLE ...." i
> backupfilen.

Altså, den starter med at slette det gamle indhold?
Man kan ikke få den til at appende så?

Mvh
Thomas



Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 13:49

> Well, der er dette...men der skal man vidst selv angive db'ere... burde
> være nemt at ændre så den tager alle..
> http://members.lycos.co.uk/wipe_out/automysqlbackup/
>

takker, den vil jeg se nærmere på.


> Men desværre er det således at der er passworded i clear tekst? Men
> afaik så bruger mysql deres PASSWORD til at lave auth. af brugere (ikke
> md5...). Så man burde kunne bygge sin egen klient til at tilgå mysql...
>
> MySQL skriver også selv lidt om backup...
> http://www.mysql.com/doc/en/Backup.html
>
> Rent teknisk er det jo ret nemt...
> mysqldump -Aa -u <username> -p <password> > backup.sql
>

Ja, det har jeg leget med. Men jeg vil jo gerne have den til at gøre det
dagligt osse.


> Så det største problem er nok at skjule passworded... har ikke lige en
> ide... måske kommer den :)

Skriv endelig hvis den kommer

Mvh
Thomas



Jimmy (28-06-2003)
Kommentar
Fra : Jimmy


Dato : 28-06-03 14:25


"Johan Holst Nielsen" <johan@weknowthewayout.com> wrote in message
news:3EFD89D8.3030104@weknowthewayout.com...

> Rent teknisk er det jo ret nemt...
> mysqldump -Aa -u <username> -p <password> > backup.sql

Der skal *ikke* mellemrum efter "-p".

Mvh
Jimmy



Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 14:35

> > Rent teknisk er det jo ret nemt...
> > mysqldump -Aa -u <username> -p <password> > backup.sql
>
> Der skal *ikke* mellemrum efter "-p".

Heller ikke efter -u (afaik)

Mvh
Thomas



Jimmy (28-06-2003)
Kommentar
Fra : Jimmy


Dato : 28-06-03 15:15


"Thomas D" <dinadur@hotmail.com> wrote in message
news:3efd98e5$0$76069$edfadb0f@dread11.news.tele.dk...
> > > Rent teknisk er det jo ret nemt...
> > > mysqldump -Aa -u <username> -p <password> > backup.sql
> >
> > Der skal *ikke* mellemrum efter "-p".
>
> Heller ikke efter -u (afaik)


Det er ligemeget.

Mvh
Jimmy



Johan Holst Nielsen (29-06-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 29-06-03 10:45

Jimmy wrote:
>>Rent teknisk er det jo ret nemt...
>>mysqldump -Aa -u <username> -p <password> > backup.sql
>
> Der skal *ikke* mellemrum efter "-p".

Doh :D Plejer ikke at skrive passworded i mysqldump :D (netop pga. jeg
ikke vil skrive det hvor det kan ses ;))).

mvh
Johan


Adam Sjøgren (28-06-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 28-06-03 15:24


On Sat, 28 Jun 2003 15:34:57 +0200, "Thomas wrote:

>> Tilføjes en DROP TABLE "tablename" før "CREATE TABLE ...." i
>> backupfilen.

> Altså, den starter med at slette det gamle indhold? Man kan ikke få
> den til at appende så?

Var formålet ikke at tage backup?


Mvh.

--
"Our voodoo-dolls are full of hopes" Adam Sjøgren
asjo@koldfront.dk

Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 15:41

> Var formålet ikke at tage backup?

Jo, det var det.
Spørgsmålet var egentlig mere nysgerrighed.

Mvh
Thomas



Johan Holst Nielsen (29-06-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 29-06-03 10:44



Thomas D wrote:
>>Var formålet ikke at tage backup?
>
>
> Jo, det var det.
> Spørgsmålet var egentlig mere nysgerrighed.
>

Det er i output filen at der kommer DROP table... ikke selve databasen
der bliver tømt ;)

mvh
Johan


Adam Sjøgren (28-06-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 28-06-03 15:42


On Sat, 28 Jun 2003 16:40:54 +0200, "Thomas wrote:

>> Var formålet ikke at tage backup?

> Jo, det var det. Spørgsmålet var egentlig mere nysgerrighed.

Så skal du selvfølgelig ikke droppe tabellerne først.

Men du skal heller ikke dumpe tabelinformationerne (CREATE
TABLE-linierne), for så får du jo bare at en fejl: tabellen findes i
forvejen.


Mvh.

--
"Our voodoo-dolls are full of hopes" Adam Sjøgren
asjo@koldfront.dk

Peter Sepstrup (28-06-2003)
Kommentar
Fra : Peter Sepstrup


Dato : 28-06-03 13:45

Thomas D skrev:

> Hej,
>
> Denne post er sendt til
> dk.edb.system.unix og dk.edb.database med FUT til dk.edb.system.unix, da
> jeg mener at den er relevant for begge grupper.
>
> Jeg vil gerne vide hvordan jeg nemmmest tager en daglig backup af alle
> mine databaser (både struktur og indhold) med crond (eller andet hvis der
> er noget der er mere smart).
>
> Jeg havde forestillet mig et shellscript som logger ind i mysql som root
> og dumper alle databaserne ned i nogle text-filer og så pakker dem ned med
> bzip2.
>
> Jeg er dog ikke helt klar over hvordan jeg skal lave det.
>
> Håber at kunne få nogle forslag fra jer.
>
> En anden ting jeg bekymrer mig lidt om er hvordan passworded til root i
> mysql kan gemmes så det ikke står i cleartext, læseligt for enhver når det
> skal indgå i scriptet.

Jeg lavede sådan et script på et tidspunkt... du kan bruge mysqldump til det
formål.
mysqldump -uroot -ppassword --all-databases >> sql_dump

så smider den det i en fil der hedder sql_dump. Du skal huske at slette
filen inden du laver dumpet (hvis du ikke flytter den) da det nye dump
ellers bliver smidt i samme fil!

Jeg løste problemet med at andre ikke må kunne få dit sql root pass ved at
lave chmod 700 på scriptet så kan kun root læse filen og se passwordet...
jeg ved ikke om det er den optimale måde at gøre det på, men det fungere
da.

i scriptet laver du bare en linje til at komprimere det med din foretrukne
metode :)

Den kan fint køres fra cron...

--

Mvh. Peter.
____________________________________
www.SepstrupNET.dk & www.PHP-FAQ.dk

Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 13:52

> Jeg lavede sådan et script på et tidspunkt... du kan bruge mysqldump til
det
> formål.
> mysqldump -uroot -ppassword --all-databases >> sql_dump
>
> så smider den det i en fil der hedder sql_dump. Du skal huske at slette
> filen inden du laver dumpet (hvis du ikke flytter den) da det nye dump
> ellers bliver smidt i samme fil!

Det er jo bare at bruge '>' i stedet for '>>'...


> Jeg løste problemet med at andre ikke må kunne få dit sql root pass ved at
> lave chmod 700 på scriptet så kan kun root læse filen og se passwordet...
> jeg ved ikke om det er den optimale måde at gøre det på, men det fungere
> da.
>
> i scriptet laver du bare en linje til at komprimere det med din foretrukne
> metode :)
>
> Den kan fint køres fra cron...

Kan cron godt køre det når det er chmod 700 og chown root:root ?

Mvh
Thomas



Peter Sepstrup (28-06-2003)
Kommentar
Fra : Peter Sepstrup


Dato : 28-06-03 13:52

Thomas D skrev:

>> Jeg lavede sådan et script på et tidspunkt... du kan bruge mysqldump til
> det
>> formål.
>> mysqldump -uroot -ppassword --all-databases >> sql_dump
>>
>> så smider den det i en fil der hedder sql_dump. Du skal huske at slette
>> filen inden du laver dumpet (hvis du ikke flytter den) da det nye dump
>> ellers bliver smidt i samme fil!
>
> Det er jo bare at bruge '>' i stedet for '>>'...

Hmm... man lære noget hver dag... det anede jeg ik at man kunne :)

>> Jeg løste problemet med at andre ikke må kunne få dit sql root pass ved
>> at lave chmod 700 på scriptet så kan kun root læse filen og se
>> passwordet... jeg ved ikke om det er den optimale måde at gøre det på,
>> men det fungere da.
>>
>> i scriptet laver du bare en linje til at komprimere det med din
>> foretrukne metode :)
>>
>> Den kan fint køres fra cron...
>
> Kan cron godt køre det når det er chmod 700 og chown root:root ?

Det skulle jeg mene... du angiver bare at den skal køres som root...

--

Mvh. Peter.
____________________________________
www.SepstrupNET.dk & www.PHP-FAQ.dk

Michael Kristensen (28-06-2003)
Kommentar
Fra : Michael Kristensen


Dato : 28-06-03 15:58

On Sat, 28 Jun 2003 14:44:50 +0200, Peter Sepstrup wrote:

> Jeg lavede sådan et script på et tidspunkt... du kan bruge mysqldump
> til det formål.
> mysqldump -uroot -ppassword --all-databases >> sql_dump
>
> så smider den det i en fil der hedder sql_dump. Du skal huske at slette
> filen inden du laver dumpet (hvis du ikke flytter den) da det nye dump
> ellers bliver smidt i samme fil!

Det er ">>" der gør at den bliver smidt i samme fil. Hvis du bruger ">"
istedet for, bliver filen blot overskrevet. Med andre ord er ">>" altså
append, og ">" er overskriv.

--
Michael Kristensen <michael@wtf.dk>


Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 13:56

Et tillægsspørgsmål er, hvor ville være et passende sted at gemme dumps'ne
til?
/var/backups/sql ?

/var/backups eksisterer i forvejen og indeholder følgende:
odin: /var/backups
$ ll
total 596
-rw-r--r-- 1 root root 206131 Jun 27 23:23 dpkg.status.0
-rw-r--r-- 1 root root 70131 Jun 27 01:12 dpkg.status.1.gz
-rw-r--r-- 1 root root 52586 Jun 25 11:33 dpkg.status.2.gz
-rw-r--r-- 1 root root 51893 Jun 13 15:11 dpkg.status.3.gz
-rw-r--r-- 1 root root 51897 Jun 2 18:55 dpkg.status.4.gz
-rw-r--r-- 1 root root 51596 May 29 06:17 dpkg.status.5.gz
-rw-r--r-- 1 root root 51579 May 28 01:07 dpkg.status.6.gz
-rw-r--r-- 1 root root 695 Jun 7 18:13 group.bak
-rw------- 1 root shadow 558 Jun 7 18:13 gshadow.bak
-rw-r--r-- 1 root root 1544 May 28 01:07 inetd.conf.bak
-rw-r--r-- 1 root root 1473 May 22 18:55 inetd.conf.bak.0
-rw-r--r-- 1 root root 666 Feb 5 10:14 inetd.conf.bak.1.gz
-rw------- 1 root root 2068 Jun 7 21:04 passwd.bak
-rw------- 1 root shadow 1600 Jun 7 21:04 shadow.bak
-rw------- 1 root root 720 Jun 24 17:45 smbpasswd.bak

Jeg var ikke klar over at der var et dir til den slags.
(hvis altså det ér til det?)

Mvh
Thomas



Peter Sepstrup (28-06-2003)
Kommentar
Fra : Peter Sepstrup


Dato : 28-06-03 14:00

Thomas D skrev:

> Et tillægsspørgsmål er, hvor ville være et passende sted at gemme dumps'ne
> til?
> /var/backups/sql ?

Jeg flyttede den over på et netværksdrev... men det er vel i princippet
ligemeget hvor man gemmer sin backup, det skal bare næsten være på en
fysisk anden disk da man så har den hvis den disk de orginale databaser
ligger på bryder ned...

--

Mvh. Peter.
____________________________________
www.SepstrupNET.dk & www.PHP-FAQ.dk

Adam Sjøgren (28-06-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 28-06-03 15:26


On Sat, 28 Jun 2003 14:59:44 +0200, Peter wrote:

> det skal bare næsten være på en fysisk anden disk da man så har den
> hvis den disk de orginale databaser ligger på bryder ned...

Alt efter behov også: på en anden maskine (hvis den første brænder), i
en anden bygning (hvis den brænder og tager indholdet med sig).


Mvh.

--
"Our voodoo-dolls are full of hopes" Adam Sjøgren
asjo@koldfront.dk

Esben Skov Pedersen (28-06-2003)
Kommentar
Fra : Esben Skov Pedersen


Dato : 28-06-03 18:39

Thomas D wrote:

> Jeg vil gerne vide hvordan jeg nemmmest tager en daglig backup af alle
> mine databaser (både struktur og indhold) med crond (eller andet hvis der
> er noget der er mere smart).
>
> Jeg havde forestillet mig et shellscript som logger ind i mysql som root
> og dumper alle databaserne ned i nogle text-filer og så pakker dem ned med
> bzip2.

I min crontab har jeg:

10 22 * * * ssh <maskine> mysqldump -A -uroot -p<passwd> |bzip2 >
/der/hvor/jeg/lægger/mine/backups/`date +\%d`.sql.bz2

Det gør at jeg altid har backups fra de sidste 31 dage. (date +%d udskiftes
med 2-cifret dato, % skal escapes for a cron vil æde den)

Jeg benytter ssh nøgler til auth. Der er masser info om dem på nettet.

> En anden ting jeg bekymrer mig lidt om er hvordan passworded til root i
> mysql kan gemmes så det ikke står i cleartext, læseligt for enhver når det
> skal indgå i scriptet.

Kun root kan læse root's crontab.

/Esben

Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 18:50


"Esben Skov Pedersen" <spam@geek.linux.dk> skrev i en meddelelse
news:3efdd309$0$13215$edfadb0f@dread15.news.tele.dk...
> Thomas D wrote:
>
> > Jeg vil gerne vide hvordan jeg nemmmest tager en daglig backup af alle
> > mine databaser (både struktur og indhold) med crond (eller andet hvis
der
> > er noget der er mere smart).
> >
> > Jeg havde forestillet mig et shellscript som logger ind i mysql som root
> > og dumper alle databaserne ned i nogle text-filer og så pakker dem ned
med
> > bzip2.
>
> I min crontab har jeg:
>
> 10 22 * * * ssh <maskine> mysqldump -A -uroot -p<passwd> |bzip2 >
> /der/hvor/jeg/lægger/mine/backups/`date +\%d`.sql.bz2
>
> Det gør at jeg altid har backups fra de sidste 31 dage. (date +%d
udskiftes
> med 2-cifret dato, % skal escapes for a cron vil æde den)
>
> Jeg benytter ssh nøgler til auth. Der er masser info om dem på nettet.
>

Tak!
Det er helt sikkert sådan noget jeg skal ha fat i!


> > En anden ting jeg bekymrer mig lidt om er hvordan passworded til root i
> > mysql kan gemmes så det ikke står i cleartext, læseligt for enhver når
det
> > skal indgå i scriptet.
>
> Kun root kan læse root's crontab.
>
> /Esben



Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 19:00

Ja jeg ville så gerne ha skrevet dette i forrige post, men kom til at trykke
send før tid :(

[snip]

> > Kun root kan læse root's crontab.
>


Hvis du tænker på /etc/crontab så kan alle læse den men kun root skrive.

Mvh
Thomas



Peter Sepstrup (28-06-2003)
Kommentar
Fra : Peter Sepstrup


Dato : 28-06-03 19:09

Thomas D skrev:

> Ja jeg ville så gerne ha skrevet dette i forrige post, men kom til at
> trykke send før tid :(
>
> [snip]
>
>> > Kun root kan læse root's crontab.
>>
>
>
> Hvis du tænker på /etc/crontab så kan alle læse den men kun root skrive.

Kunne problemet så ikke løses på den måde jeg nævnte før, med et script som
700 retigheder til root? eller vil den også kunne ses med ps... det må
komme an på en prøve :D

--

Mvh. Peter.
____________________________________
www.SepstrupNET.dk & www.PHP-FAQ.dk

Esben Skov Pedersen (28-06-2003)
Kommentar
Fra : Esben Skov Pedersen


Dato : 28-06-03 19:17

Thomas D wrote:

>> > Kun root kan læse root's crontab.

> Hvis du tænker på /etc/crontab så kan alle læse den men kun root skrive.

jeg tænker på den der kommer når man som root skriver crontab -e. Den ligger
i /var/spool/cron , som kun kan læses af root.

/Esben

Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 19:48

>> Hvis du tænker på /etc/crontab så kan alle læse den men kun root
>> skrive.
>
> jeg tænker på den der kommer når man som root skriver crontab -e. Den
> ligger i /var/spool/cron , som kun kan læses af root.


Hmm... Nu har jeg vha. crontab -e lavet en crontab med følgende indhold:
--
50 20 * * * /root/shellscripts/mysql_backup.sh
--

og /root/shellscripts/mysql_backup.sh ser således ud:
--
mysqldump -A -uroot -pFastelavn |bzip2 > /root/backups/mysql/`date
+\%d`.sql.bz2
--

Jeg oprettede den kl 20:45 for at se om det virkede.
Kl. 20:55 var der ikke kommet nogne filer i /root/backups/mysql.

Hvis jeg kører scriptet manuelt så virker det helt fint.

Hvordan kan dette være?

Mvh
Thomas



Adam Sjøgren (28-06-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 28-06-03 18:51


On Sat, 28 Jun 2003 19:38:57 +0200, Esben wrote:

> I min crontab har jeg:

> 10 22 * * * ssh <maskine> mysqldump -A -uroot -p<passwd> |bzip2 >
> /der/hvor/jeg/lægger/mine/backups/`date +\%d`.sql.bz2

[...]

> Kun root kan læse root's crontab.

Men alle og enhver på <maskine> kan køre fx. 'ps aux' og aflæse root's
kodeord til mysql...


Mvh.

--
"Our voodoo-dolls are full of hopes" Adam Sjøgren
asjo@koldfront.dk

Esben Skov Pedersen (28-06-2003)
Kommentar
Fra : Esben Skov Pedersen


Dato : 28-06-03 19:20

Adam Sjøgren wrote:

>
> On Sat, 28 Jun 2003 19:38:57 +0200, Esben wrote:
>
>> I min crontab har jeg:
>
>> 10 22 * * * ssh <maskine> mysqldump -A -uroot -p<passwd> |bzip2 >
>> /der/hvor/jeg/lægger/mine/backups/`date +\%d`.sql.bz2
>
> [...]
>
>> Kun root kan læse root's crontab.
>
> Men alle og enhver på <maskine> kan køre fx. 'ps aux' og aflæse root's
> kodeord til mysql...

når jeg logger ind i mysql med mysql -p<passwd> kan jeg som user når jeg
skriver ps aux|grep <user> se: mysql -px xxxxx. Jeg antager at det samme
gør sig gældende for mysqldump.

/Esben

Hans Jørgen Jakobsen (29-06-2003)
Kommentar
Fra : Hans Jørgen Jakobsen


Dato : 29-06-03 08:39

On Sat, 28 Jun 2003 20:20:24 +0200, Esben Skov Pedersen wrote:
> Adam Sjøgren wrote:
>
>>
>> On Sat, 28 Jun 2003 19:38:57 +0200, Esben wrote:
>>
>>> I min crontab har jeg:
>>
>>> 10 22 * * * ssh <maskine> mysqldump -A -uroot -p<passwd> |bzip2 >
>>> /der/hvor/jeg/lægger/mine/backups/`date +\%d`.sql.bz2
>>
>> [...]
>>
>>> Kun root kan læse root's crontab.
>>
>> Men alle og enhver på <maskine> kan køre fx. 'ps aux' og aflæse root's
>> kodeord til mysql...
>
> når jeg logger ind i mysql med mysql -p<passwd> kan jeg som user når jeg
> skriver ps aux|grep <user> se: mysql -px xxxxx. Jeg antager at det samme
> gør sig gældende for mysqldump.
>
Så lav en .my.cnf fil i home dir for unixbrugeren der kører mysql-komandoerne
% cat .my.cnf
[client]
user=root
password=blabla
%
Den skal så være 700.

/hjj

Adam Sjøgren (28-06-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 28-06-03 19:31


On Sat, 28 Jun 2003 20:20:24 +0200, Esben wrote:

> når jeg logger ind i mysql med mysql -p<passwd> kan jeg som user når
> jeg skriver ps aux|grep <user> se: mysql -px xxxxx. Jeg antager at
> det samme gør sig gældende for mysqldump.

Ja, den modificerer også argv - betyder mon at der kun er et kort
vindue hvor man kan se kodeordet, eller er det sikkert?


Mvh.

--
"Our voodoo-dolls are full of hopes" Adam Sjøgren
asjo@koldfront.dk

Adam Sjøgren (28-06-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 28-06-03 19:48


On Sat, 28 Jun 2003 20:47:44 +0200, "Thomas wrote:

> Hmm... Nu har jeg vha. crontab -e lavet en crontab med følgende
> indhold: -- 50 20 * * * /root/shellscripts/mysql_backup.sh --

> og /root/shellscripts/mysql_backup.sh ser således ud: -- mysqldump
> -A -uroot -pFastelavn |bzip2 > /root/backups/mysql/`date
> +\%d`.sql.bz2 --

> Jeg oprettede den kl 20:45 for at se om det virkede. Kl. 20:55 var
> der ikke kommet nogne filer i /root/backups/mysql.

> Hvis jeg kører scriptet manuelt så virker det helt fint.

> Hvordan kan dette være?

Hvad har du gjort for at finde fejlen?

Fx: Hvad siger loggen?
Er der linieskift til sidst på linien? (Se BUGS på crontab(1))
Hvad er permissions på mysql_backup.sh?


Mvh.

--
"Our voodoo-dolls are full of hopes" Adam Sjøgren
asjo@koldfront.dk

Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 19:58

Adam Sjøgren wrote:
> On Sat, 28 Jun 2003 20:47:44 +0200, "Thomas wrote:
>
>> Hmm... Nu har jeg vha. crontab -e lavet en crontab med følgende
>> indhold: -- 50 20 * * * /root/shellscripts/mysql_backup.sh --
>
>> og /root/shellscripts/mysql_backup.sh ser således ud: -- mysqldump
>> -A -uroot -pFastelavn |bzip2 > /root/backups/mysql/`date
>> +\%d`.sql.bz2 --
>
>> Jeg oprettede den kl 20:45 for at se om det virkede. Kl. 20:55 var
>> der ikke kommet nogne filer i /root/backups/mysql.
>
>> Hvis jeg kører scriptet manuelt så virker det helt fint.
>
>> Hvordan kan dette være?
>
> Hvad har du gjort for at finde fejlen?
>
> Fx: Hvad siger loggen?

den siger:
--
Jun 28 20:51:02 odin crontab[31804]: (root) BEGIN EDIT (root)
Jun 28 20:51:06 odin crontab[31804]: (root) REPLACE (root)
Jun 28 20:51:06 odin crontab[31804]: (root) END EDIT (root)
Jun 28 20:51:08 odin crontab[31806]: (root) BEGIN EDIT (root)
Jun 28 20:51:12 odin crontab[31806]: (root) REPLACE (root)
Jun 28 20:51:12 odin crontab[31806]: (root) END EDIT (root)
Jun 28 20:52:01 odin /usr/sbin/cron[417]: (root) RELOAD (crontabs/root)
Jun 28 20:52:32 odin crontab[31837]: (root) BEGIN EDIT (root)
Jun 28 20:52:36 odin crontab[31837]: (root) END EDIT (root)
Jun 28 20:52:39 odin crontab[31840]: (root) BEGIN EDIT (root)
--


> Er der linieskift til sidst på linien? (Se BUGS på crontab(1))

nej det er der ikke!


> Hvad er permissions på mysql_backup.sh?

700

Mvh
Thomas



Adam Sjøgren (28-06-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 28-06-03 20:42

On Sat, 28 Jun 2003 20:58:00 +0200, "Thomas wrote:

>>> indhold: -- 50 20 * * * /root/shellscripts/mysql_backup.sh --

> den siger: -- Jun 28 20:51:02 odin crontab[31804]: (root) BEGIN EDIT
> (root) Jun 28 20:51:06 odin crontab[31804]: (root) REPLACE (root)
> Jun 28 20:51:06 odin crontab[31804]: (root) END EDIT (root) Jun 28
> 20:51:08 odin crontab[31806]: (root) BEGIN EDIT (root) Jun 28
> 20:51:12 odin crontab[31806]: (root) REPLACE (root) Jun 28 20:51:12
> odin crontab[31806]: (root) END EDIT (root) Jun 28 20:52:01 odin
> /usr/sbin/cron[417]: (root) RELOAD (crontabs/root)

Dvs. den siger at RELOAD skete efter 20:50... mon ikke det er grunden?

>> Er der linieskift til sidst på linien? (Se BUGS på crontab(1))

> nej det er der ikke!

Det skal der være. Se BUGS i crontab(1).


Mvh.

--
"Our voodoo-dolls are full of hopes" Adam Sjøgren
asjo@koldfront.dk

Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 20:48

Adam Sjøgren wrote:
> On Sat, 28 Jun 2003 20:58:00 +0200, "Thomas wrote:
>
>>>> indhold: -- 50 20 * * * /root/shellscripts/mysql_backup.sh --
>
>> den siger: -- Jun 28 20:51:02 odin crontab[31804]: (root) BEGIN EDIT
>> (root) Jun 28 20:51:06 odin crontab[31804]: (root) REPLACE (root)
>> Jun 28 20:51:06 odin crontab[31804]: (root) END EDIT (root) Jun 28
>> 20:51:08 odin crontab[31806]: (root) BEGIN EDIT (root) Jun 28
>> 20:51:12 odin crontab[31806]: (root) REPLACE (root) Jun 28 20:51:12
>> odin crontab[31806]: (root) END EDIT (root) Jun 28 20:52:01 odin
>> /usr/sbin/cron[417]: (root) RELOAD (crontabs/root)
>
> Dvs. den siger at RELOAD skete efter 20:50... mon ikke det er grunden?

Ja, det var fordi jeg prøvede et par gange.
Både 20:50 og 20:51 og 20:52.

Skrev kun den med 20:50 herinde.


>
>>> Er der linieskift til sidst på linien? (Se BUGS på crontab(1))
>
>> nej det er der ikke!
>
> Det skal der være. Se BUGS i crontab(1).
>

Ahh okay..
takker
Mvh
Thomas



Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 20:58

Jeg tror det virker nu!
Tak for alle svarene!

MVh
Thomas



Jimmy (28-06-2003)
Kommentar
Fra : Jimmy


Dato : 28-06-03 22:14


"Esben Skov Pedersen" <spam@geek.linux.dk> wrote in message
news:3efdd309$0$13215$edfadb0f@dread15.news.tele.dk...
> Thomas D wrote:
>
> > Jeg vil gerne vide hvordan jeg nemmmest tager en daglig backup af alle
> > mine databaser (både struktur og indhold) med crond (eller andet hvis
der
> > er noget der er mere smart).
> >
> > Jeg havde forestillet mig et shellscript som logger ind i mysql som root
> > og dumper alle databaserne ned i nogle text-filer og så pakker dem ned
med
> > bzip2.
>
> I min crontab har jeg:
>
> 10 22 * * * ssh <maskine> mysqldump -A -uroot -p<passwd> |bzip2 >
> /der/hvor/jeg/lægger/mine/backups/`date +\%d`.sql.bz2
>
> Det gør at jeg altid har backups fra de sidste 31 dage. (date +%d
udskiftes
> med 2-cifret dato, % skal escapes for a cron vil æde den)
>
> Jeg benytter ssh nøgler til auth. Der er masser info om dem på nettet.


Det er en god løsning, men et Shell/Perl-script ville være bedre, da du der
kan få pakket dine filer bagefter.
Du kan kaste passwordet ind som parameter.

Een af mine databaser fylder 70 MB upakket og 3.6 MB pakket

Mvh
Jimmy



Adam Sjøgren (28-06-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 28-06-03 22:21

On Sat, 28 Jun 2003 23:14:06 +0200, "Jimmy" wrote:

>> 10 22 * * * ssh <maskine> mysqldump -A -uroot -p<passwd> |bzip2 >
>> /der/hvor/jeg/lægger/mine/backups/`date +\%d`.sql.bz2

[..]

> Det er en god løsning, men et Shell/Perl-script ville være bedre, da
> du der kan få pakket dine filer bagefter.

Du overså vist at dumpet _bliver_ pakket; bzip2 ovenfor...


Mvh.

--
"Our voodoo-dolls are full of hopes" Adam Sjøgren
asjo@koldfront.dk

Jimmy (28-06-2003)
Kommentar
Fra : Jimmy


Dato : 28-06-03 22:56


"Adam Sjøgren" <spamtrap@koldfront.dk> wrote in message
news:87brwh290t.fsf@virgil.koldfront.dk...
> On Sat, 28 Jun 2003 23:14:06 +0200, "Jimmy" wrote:
>
> >> 10 22 * * * ssh <maskine> mysqldump -A -uroot -p<passwd> |bzip2 >
> >> /der/hvor/jeg/lægger/mine/backups/`date +\%d`.sql.bz2
>
> [..]
>
> > Det er en god løsning, men et Shell/Perl-script ville være bedre, da
> > du der kan få pakket dine filer bagefter.
>
> Du overså vist at dumpet _bliver_ pakket; bzip2 ovenfor...


Jep

Mvh
Jimmy



Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 22:23

Thomas D wrote:
[snip]
> Jeg vil gerne vide hvordan jeg nemmmest tager en daglig backup af
> alle mine databaser (både struktur og indhold) med crond (eller andet
> hvis der er noget der er mere smart).
[snip]

Det jeg så er kommet frem til er et shellscript som bliver kørt af crond.
Scriptet ser således ud:

--
#!/bin/bash
############################################################################
####
#
# Author: Thomas Damgaard
# Date: Sat Jun 28 22:55:34 CEST 2003
# Description:
# Script to take backup of mysql databases.
# The script should have the permissions 600.
#
# This script is made to run from crond.
#
# To install this script:
# 1. copy it to /root/shellscripts/mysql_backup.sh
# 2. mkdir /root/backups/mysql
# 3. run 'crontab -e' as root to configure crontab
# 4. write this to crontab:
# --
# 00 03 * * * /root/shellscripts/mysql_backup.sh
#
# --
#
# IMPORTANT: Remember the blank line in the end at crontab.
#
# NOTE: To get the scp to work it is nessesary to make a ssh dsa key pair
and
# copy this to the remote server.
#
############################################################################
####

mysql_user="root"
mysql_passwd="hemmeligt"

remote_user="tdn"
remote_host="backup.peps.dk"
path_to_backups="/root/backups/mysql"
remote_path="backups/mysql"


# dump alle databaser med indhold fra mysqld og komprimer den
mysqldump -A -uroot -p$mysql_passwd |bzip2 > $path_to_backups/`date
+\%d`.sql.bz2

# tillad kun root at læse og skrive til filen
chmod 600 $path_to_backups/`date +\%d`.sql.bz2

# kopier backupen til sprex.dk
scp -q $path_to_backups/`date +\%d`.sql.bz2
$remote_user@$remote_host:$remote_path/
--

Mvh
Thomas

P.S.
Kommentarer/forslag til scriptet modtages med kyshånd!





Thomas D (28-06-2003)
Kommentar
Fra : Thomas D


Dato : 28-06-03 22:24

Hov! Glemte lige at sige mange tak for alle svarene.
Mange tak for alle svarene!

Mvh
Thomas



Thor Dreier (30-06-2003)
Kommentar
Fra : Thor Dreier


Dato : 30-06-03 00:39

Thomas D wrote:

> mysql_user="root"
> mysql_passwd="hemmeligt"

Istedet for at logge ind med en bruger der har læse/skriverettigheder på
alle databaser (root), så lave isedet en mysql-bruger der kun har
læserettigheder på alle baserne, men ikke skriverettighed.

Thor


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste