Mysql databases backup script (bash)

dobro, može se ovo još polirati ali važno je da fino radi svoj posao :wink:

[code]#/!bin/bash

Script for making MySQL databases backup, my (beginners) way :wink:

CopyLeft, Aldin K. 2008

user=root
pass=mojasifra
host=localhost
dir=/backup/mysql
date=$(date +"%Y-%m-%d")
stamp=$(date +"%k%M%S")
databases=$(mysql -h $host -u $user -h $host -p$pass -Bse ‘show databases’)

mkdir $dir/$date
for db in ${databases[@]}
do
mysqldump -h $host -u $user -p$pass $db | gzip > $dir/$date/$db-$stamp.sql.gz
done[/code]
jah, može nekom valjati… nije nešta al nek se nađe, btw. nisam “pođonio” :wink: malo sam istraživao

ps:
hint: crontab -e

ja koristim ovo, radi super :kul:

[code]#!/bin/bash
DAY="20date +%y``date +%m``date +%d"
echo=DAY

mysqldump -uroot -pnekipass --opt imebaze > /home/amar/backup/blog.sql

cd /home/amar/backup/
gzip *.sql
mv -T blog.sql.gz blog$DAY.gz[/code]

jah, ovo gore što sam napisao je odgovor na pitanje: “how to backup more databases in different .sql files” :wink: modularno je, mada se radi bezze backup za test, mysql i information_schema baze al haj šta ima veze ;), mrsko mi sad tabiriti za “skip” foru, ako neko ima rješenje dobrodošao je :wink: sad zasad vrtim ovo :slight_smile:

ps:
jah nekad nam treba baza iz tog i tog datuma pa je lako naći :wink:

pps:
hint cron daily

zasto niko ne koristi “mysqlhotcopy” ?

mysqlhotcopy se koristi za MyISAM tip tabela. Inače, za svaku bazu koja koristi MVCC pristup, backup program može biti implementiran kao relativno jednostavan klijentski program (mysqldump, pg_dump …)

samo ponekad mysqldump predstavlja problem zbog povecanja load-a, posebno na hosting serverima sa preko 200 domena, i tada ostaje samo:

[code]echo “=======================================” >> /var/log/backup-log
echo “Mysql backup poceo u $(date)” >> /var/log/backup-log
tar -czf /home/safe_house/srv.mysql.$(date ‘+%d.%m.%y’).tar.gz /var/lib/mysql
chown safe_house:safe_house /home/safe_house/srv.mysql.$(date ‘+%d.%m.%y’).tar.gz
echo “Mysql backup zavrsen u $(date)” >> /var/log/backup-log

.
.
.

tail -10 /var/log/backup-log |grep “$(date ‘+%a %b’)” > /home/safe_house/tmp-file
/bin/mail -s “SRV_BACKUP” "webmaster@somewhere.ba" < /home/safe_house/tmp-file[/code]
(there is allways place for improvments)
Mada razmisljam o dnevnom incremental backup-u, a samo sedmicnom full…

For God’s sake koristi code tag?