Kirjoittaja Aihe: Cron, logit ja backupit  (Luettu 2798 kertaa)

elias_a

  • Käyttäjä
  • Viestejä: 77
    • Profiili
Cron, logit ja backupit
« : 23.03.07 - klo:09.31 »
Hei,

Olen tässä ihmetellyt, miten saisin kätevimmin tehtyä päivittäin dumpit samassa koneessa olevasta kahdesta tietokannasta, toinen Moodlen, toinen mediawikin, cronilla.

Asensin koneeseen graafisen Mysql-administrator -ohjelman ja määrittelin sillä eilen kaksi ajastettua backup-tehtävää. Ne eivät ole kuitenkaan onnistuneet.

Mistä logista lähden etsimään syytä?

Lisätäänpä vielä, että ihmetystä herättää tämä syslogista löytyvä:
Mar 22 21:32:01 localhost /USR/SBIN/CRON[7431]: (elias) CMD (/usr/bin/mabackup -
d /var/backup -x ukiwiki Moodle_backup_ea)

Mitään ei ole kuitenkaan mennyt /var/backup -hakemistoon.


« Viimeksi muokattu: 23.03.07 - klo:09.40 kirjoittanut elias_a »

T.M

  • Käyttäjä
  • Viestejä: 172
    • Profiili
Vs: Cron, logit ja backupit
« Vastaus #1 : 23.03.07 - klo:10.52 »
Jos sinulla on masiinaan komentoriviyhteys niin kannattanee hoitaa backup-ihan komentorivi/cron yhdistelmällä.

Helpointa tehdä parista kannasta dumpit:

#mysqldump --opt tietokannan_nimi -u kayttaja -psalainensanani > tietokanta.sql

Sitten ajastat tuon komennon cron:lla. Kannattaa varmaan tehdä ajettava skripti.

Itse olen dumpannut kaikki koneen kannat alla olevalla skriptillä jonka löysin joskus newsgroupeista.
sqlbackup.sh. Huom salasana on selväkielisenä skriptissä joten kannattanee tehdä tarvittavat suojaukset tiedostoon varsinkin jos kannat on jossain hotellissa.

#!/bin/sh
# This parametrs should be modified in your system
# BACKUPDIR dir where you store backups files
BACKUPDIR=/root/backupsql

# LOGFILE path to log file
LOGFILE=/root/backupsql/backup.log

# DATE start datatime
DATE=`date '+%d-%m-%y %H:%M:%S'`

# --- code
cd $BACKUPDIR
echo 'Starting ' $DATE >> $LOGFILE
mysql -Ne 'show databases' -psalainensalani | while read database
do
        if test $database != "lost+found"; then
                if test $database != "backup"; then
                        echo -n $database >> $LOGFILE
                        if [ -f $database.3.tgz ]; then mv -f $database.3.tgz $database.4.tgz; fi
                        if [ -f $database.2.tgz ]; then mv -f $database.2.tgz $database.3.tgz; fi
                        if [ -f $database.1.tgz ]; then mv -f $database.1.tgz $database.2.tgz; fi
                        mysqldump --opt "$database" -psalainensanani > $database
                        tar -czf $database.1.tgz $database
                        rm -f $database
                        echo '.. done' >> $LOGFILE
                fi
        fi
done
DATE=`date '+%d-%m-%y %H:%M:%S'`
echo 'Stop All ' $DATE >> $LOGFILE


#---Koodi loppuu----


Jos haluat käyttää tuota administrator-ohjelmaa niin kokeile ajaa käsin tuo cronin työ ja katso mitä herjaa.
/usr/bin/mabackup -d /var/backup -x ukiwiki Moodle_backup_ea
« Viimeksi muokattu: 23.03.07 - klo:10.58 kirjoittanut T.M »

elias_a

  • Käyttäjä
  • Viestejä: 77
    • Profiili
Vs: Cron, logit ja backupit
« Vastaus #2 : 23.03.07 - klo:11.10 »

Jos haluat käyttää tuota administrator-ohjelmaa niin kokeile ajaa käsin tuo cronin työ ja katso mitä herjaa.
/usr/bin/mabackup -d /var/backup -x ukiwiki Moodle_backup_ea

Jahas - ilmeisesti kyse on siitä, että mysql-administrator tekee jollain tapaa vajaan tai vaillinaisen skriptin:

Koodia: [Valitse]
elias@moodle:~$ sudo /usr/bin/mabackup -d /var/backup -x ukiwiki Moodle_backup_ea
Password:
missing parameter: --user

Mielenkiintoista sinänsä, että täsmälleen sama backup-työ käsin konsolilta mysql-administratorilla ajettuna toimii ongelmitta.

Kiitoksia hyvästä skriptistä. Taidanpa ottaa käyttöön kun tuo GUI-työkalu on rikki pahemman kerran.


T.M

  • Käyttäjä
  • Viestejä: 172
    • Profiili
Vs: Cron, logit ja backupit
« Vastaus #3 : 23.03.07 - klo:11.24 »
Jos jaksat tapella vielä vanhan kanssa niin tarkista tosiaan että tuo logissa näkyvä cronityö on oikein eli välttämättä logissa ei näy koko pötkö.

#crontab -u elias -l

Tämä listaa cronityöt ja lunttaa sieltä
/usr/bin/mabackup -d /var/backup -x ukiwiki Moodle_backup_ea rimpsu ja kokeile. Jostainhan tuon mabackupin pitäisi saada mysql-tunnus/salasana.

elias_a

  • Käyttäjä
  • Viestejä: 77
    • Profiili
Vs: Cron, logit ja backupit
« Vastaus #4 : 23.03.07 - klo:11.48 »
Cronista löytyy juuri tuo sama rivi:

Koodia: [Valitse]
#MySQL Administrator Backup [Moodle_backup_ea] (do not change this line)
32 21 * * * /usr/bin/mabackup -d /var/backup -x ukiwiki Moodle_backup_ea

Joka antaa komentoriviltä ajettuna tuon ilmoituksen:

Koodia: [Valitse]
missing parameter: --user
Ja kuten sanoin, Myql-administrator tekee täsmälleen samoilla asetuksilla backupin oikein käsin GUI:n nappuloita painelemalla.