Anubis: Tietokannan automaattinen varmuuskopiointi

Suomenkielisiä oppaita
Viestiketju Lukittu
Avatar
Admin
Aktiivinen jäsen
Aktiivinen jäsen
Viestit:721
Liittynyt:13 Marras 2005, 15:45
Anubis: Tietokannan automaattinen varmuuskopiointi

Viesti Kirjoittaja Admin » 17 Loka 2006, 18:55

Anubis räätälöi tämmöisen:

======================
Tietokannan automaattinen varmuuskopiointi

Vaatimuksia:
-Pääset kirjautumaan SSH:lla webhotellisi palvelintilalle.
-Crontab-oikeus (joko itse asetettu tai ylläpidon kautta).
-username tarkoittaa omaa käyttäjätunnustasi.
-Tietoturvan vuoksi, mysqldump lukee .my.conf tiedostoa (jos ei lue, mysqldumppiin voi liittää parametriksi salasanasi, mutta tämä taas heikentää tietoturvaa).

Tee tiedosto ~/.my.conf ja laita sisään

Koodi: Valitse kaikki

[mysqldump]
password=salasanasi

Tee tiedosto, jonka nimeät vaikkapa: sqldump.sh ja laita koodinpätkä sisään:

Koodi: Valitse kaikki

#!/bin/bash
pvm=`date +"%Y%m%d_%H%M%S"`;
filenimi="/home/username/sql/foorum_$pvm.sql"
mysqldump -u {mysql_kayttajatunnus} {tietokantasi} > $filenimi

Kyseinen koodinpätkä tekee sql -nimiseen hakemistoon (luo kyseinen hakemisto) foorum_päivämäärä.sql dumppauksen, päivämäärä on jenkkiläisessä muodossa siksi, että listauksessa näkyisi tiedostot päivämääräjärjestyksessä. Voit kokeilla koodin toimivuutta ./sqldump

Sen jälkeen, kirjoita crontab -e ja lisää sinne rivi

Koodi: Valitse kaikki

00 6 * * * /home/username/sqldump.sh

Tuo tekee joka aamu klo 6.00 varmuuskopion tietokannastasi, jossa phpBB foorumisi sijaitsee. Jos haluat useammin, lisää pilkulla tunteja, esim:

Koodi: Valitse kaikki

00 6,10,12 * * * /home/username/sqldump.sh

Tuo tekee klo 6.00, 10.00 ja 12.00 backupit.

Pari asiaa vielä:

-Jos on erillinen mysql palvelin, niin silloin tuohon mysqldump-komentoon tarvitaan lisätä hostname, yv;tä minulle tästä, niin neuvon.

-Linuxissa perinteisesti jokainen tiedosto tarvitsee päättyä rivinvaihtoon, eli lisätkää pari tyhjää riviä tuohon sqldump.sh tiedostoon. (samaten .my.cnf:ään).

-Crontabin editori on jokaisessa järjestelmässä eri, joten en voi neuvoa sen editorin käytöstä. Tietysti jos on cPanel, voi sitä kautta ajastuksen laittaa.
Viimeksi muokannut Admin, 17 Loka 2006, 20:25. Yhteensä muokattu 1 kertaa.

Avatar
Admin
Aktiivinen jäsen
Aktiivinen jäsen
Viestit:721
Liittynyt:13 Marras 2005, 15:45

Viesti Kirjoittaja Admin » 17 Loka 2006, 18:56

Jätetään lukottamatta hetkeksi että Anubis pääsee antamaan osviittaa / kommentoimaan ;)

Avatar
Kipe
MODaaja
MODaaja
Viestit:186
Liittynyt:13 Marras 2005, 22:59

Viesti Kirjoittaja Kipe » 18 Loka 2006, 22:09

Laitetaanpas tähän esimerkkinä myös oma scriptini, joka on siis tarkoitettu päivittäisen backupin ottoon (tiedostonimet eivät sisällä kellonaikaa). Lisäksi levytilan säästämiseksi 2 viikkoa vanhat backupit poistettaan. Tämä tekee myös www-hakemiston backupin. Lisäksi logitusta varten suoritetaan alussa päivämäärän kertova lauseke, jotta logeihin jää suorituksen päivämäärä talteen.

Koodi: Valitse kaikki

#!/bin/sh
echo `date +%F_%R`
mysqldump -u käyttäjä -pSALASANA --all-databases | gzip > /home/username/.backup/mysql-`date -I`.sql.gz
tar -cf - /var/www/ | gzip -c > /home/username/.backup/www-`date -I`.tar.gz
# Poistetaan 2 viikkoa vanhat...

rm /home/username/.backup/mysql-`date --date="2 weeks ago" -I`.sql.gz
rm /home/username/.backup/www-`date --date="2 weeks ago" -I`.tar.gz
En näe tuota salasanan antoa mysqldumpille tässä ongelmana, koska samalla tavalla se löytyy tuosta my.conf -tiedostostakin.
Kipe

Anubis
Aktiivinen jäsen
Aktiivinen jäsen
Viestit:865
Liittynyt:15 Elo 2006, 11:01

Viesti Kirjoittaja Anubis » 19 Loka 2006, 01:17

Aivan, mutta .my.cnf tiedostoa käyttäessä se ei näy top ja ps axu komennoilla.

kerrunch
Oppii uutta
Oppii uutta
Viestit:45
Liittynyt:03 Huhti 2006, 11:56

Viesti Kirjoittaja kerrunch » 17 Tammi 2007, 18:14

Okei, olen sen verran pihalla koko asiasta, että koitan kirjata koko työprosessin aivan kohtakohdalta, jos vaikka olisi apua jollekin toiselle "dummylle" vastaisuudessa ;) Olenko siis ymmärtänyt oikein, että...

Koodi: Valitse kaikki

1 Luo tiedosto nimeltä:
[b]~/.my.conf[/b]
Kysymys (kohta 1): Luodaanko tiedostot ja hakemistot ns. päätasolle (vai samalle tasolle kuin phpbb-foorumin tiedostot, mikäli kyseinen foorumi sattuu olemaan alihakemistossa?

Koodi: Valitse kaikki

2 Sijoita tiedostoon koodi: 
[b][mysqldump]
password=salasanasi[/b]
Kysymys (kohta 2): tuleeko salasanan olla sama kuin normaali käyttäjätunnukseni, vai voiko se olla mikä tahansa?

Koodi: Valitse kaikki

3 Luo (samalle tasolle) tiedosto nimeltä: 
[b]sqldump.sh[/b]

4 Sijoita tiedostoon koodi: 
[b]#!/bin/bash 
pvm=`date +"%Y%m%d_%H%M%S"`; 
filenimi="/home/username/sql/foorum_$pvm.sql" 
mysqldump -u {mysql_kayttajatunnus} {tietokantasi} > $filenimi[/b]
Kysymys: Mitä kaikkia määreitä tulee määrittää? "tietokantasi", "mysql_kayttajatunnus", username?

Koodi: Valitse kaikki

5 Luo (samalle tasolle) hakemisto nimeltä [b]sql[/b]
Kysymys: Tuleeko kansio luoda ennenkuin luo sqldump.sh -tiedoston vai onko tällä väliä?

Koodi: Valitse kaikki

6 Luodaan Cron -määritys
Kysymys (kohta 6): Palveluntarjoajalla on tuollainen minimalistinen Cron-työkalu, jossa voin määritellä tapahtumavälin 15 min -24 h ja sen lisäksi voin määritellä URLin, onko URL siis tuo "00 6 * * * /home/username/sqldump.sh" vai mahdollisesti vain tuo "/home/username/sqldump.sh" - vai mahdollisesti jotain aivan muuta?

Pahoitteluni luupäisyydestäni.

mrl586
Aktiivinen jäsen
Aktiivinen jäsen
Viestit:2879
Liittynyt:31 Maalis 2006, 17:59
Paikkakunta:Tampere
Viesti:

Viesti Kirjoittaja mrl586 » 17 Tammi 2007, 18:50

kerrunch kirjoitti:

Koodi: Valitse kaikki

2 Sijoita tiedostoon koodi: 
[b][mysqldump]
password=salasanasi[/b]
Kysymys (kohta 2): tuleeko salasanan olla sama kuin normaali käyttäjätunnukseni, vai voiko se olla mikä tahansa?
Salasanan tulee olla salasanasi tietokantaan.

kerrunch
Oppii uutta
Oppii uutta
Viestit:45
Liittynyt:03 Huhti 2006, 11:56

Viesti Kirjoittaja kerrunch » 18 Tammi 2007, 08:31

mrl586 kirjoitti:Salasanan tulee olla salasanasi tietokantaan.
Ok. Kiitos.

Miten nuo jälkimmäiset kohdat, osaisiko joku valaista vielä niitä? En haluaisi lähteä arpomaan, ettei tule tehtyä mitään pahoja töppäilyjä.

Viestiketju Lukittu

Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Ei rekisteröityneitä käyttäjiä ja 35 vierailijaa