Evaluarea subiectului:
  • 0 voturi - 0 în medie
  • 1
  • 2
  • 3
  • 4
  • 5
Script pentru backup
#1
Salutare!

Unde gasesc si eu un script pentru backup baze de date mysql care sa ruleze la o anumita ora?

Multumesc.
Răspunde
#2
Salut bogdanwhy,

Ar fi un script "AutoMySQLBackup" il gasesti pe net, sau ceva mai simplu scriptul de mai jos cu care poti face backup la baze de date mysql:

Cod:
#!/bin/bash
BACKUP_DIR="/backup/mysql"
DATE=`date +%Y%m%d`
DATETIME=`date +%Y%m%d%H%M`

MyUSER="root"
MyPASS="PASSWORD"
MyHOST="localhost"

if [ ! -d $BACKUP_DIR/$DATE ]; then
   mkdir -p $BACKUP_DIR/$DATE
fi

DBS="$(/usr/bin/mysql -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"

for i in $DBS
do
/usr/bin/mysqldump -u $MyUSER -h $MyHOST -p$MyPASS --events --routines --skip-lock-tables $i | /bin/nice -n 19 /usr/bin/gzip >  $BACKUP_DIR/$DATE/$i"_"$DATETIME.sql.gz
done

mysqlcheck -h $MyHOST -u $MyUSER -p --analyze --silent --password=$MyPASS --all-databases 1>>$BACKUP_DIR/$DATE/mysqlcheck_$DATETIME.log
mysqlcheck -h $MyHOST -u $MyUSER -p --check --silent --password=$MyPASS --all-databases 1>>$BACKUP_DIR/$DATE/mysqlcheck_$DATETIME.log
mysqlcheck -h $MyHOST -u $MyUSER -p --optimize --silent --password=$MyPASS --all-databases 1>>$BACKUP_DIR/$DATE/mysqlcheck_$DATETIME.log
mysqlcheck -h $MyHOST -u $MyUSER -p --repair --silent --password=$MyPASS --all-databases 1>>$BACKUP_DIR/$DATE/mysqlcheck_$DATETIME.log

###### remove old backups part

if [ -d $BACKUP_DIR ]; then
   ## clear old DB backups
   find $BACKUP_DIR/* -maxdepth 0 -mtime +10 -print0 -type d | xargs --no-run-if-empty -0 rm -rf

## Force rights & access
   chown -R mysql:mysql $BACKUP_DIR
   find $BACKUP_DIR -type d -exec chmod 700 '{}' ';'
   find $BACKUP_DIR -type f -exec chmod 600 '{}' ';'
fi

Nu uita sa schimbi MyPASS="PASSWORD" cu parola ta de mysql root.
Cronul il poti pune la ce ora vrei tu - de preferat noaptea.
Răspunde


Săritura forum:


Utilizator(i) care navighează în acest subiect: 1 Musafir(i)