Вы здесь

Скрипт бэкапа всех баз mysql и закачки их на FTP

В данной заметке я публикую довольно простой, но тем не менее весьма полезный скрипт, который делает бэкап всех баз mysql, архивирует их и закачивает на указанный FTP.

Скрипт

#!/bin/sh
# System + MySQL backup script
# # ---------------------------------------------------------------------

#########################
######TO BE MODIFIED#####

### System Setup ###
BACKUP=/root
PREFIX_BACKUP="sitename"

### Настройка Mysql ###
MUSER="DBUSER"
MPASS="DBPASSWORD"
MHOST="localhost"

### Настройки FTP ###
FTPD="/"
FTPU="FTPUSER"
FTPP="FTPPASSWORD"
FTPS="FTPADDRESS"

#########################################

### Binaries ###
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"

### Today + hour in 24h format ###
NOW=$(date +"%a%H")

### Create hourly dir ###

mkdir $BACKUP/$NOW

### Получаем имена всех баз Mysql ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do

### Создаем директории для каждой базы. Резервное копирование будет происходить в различные каталоги ###
  mkdir $BACKUP/$NOW/$db
  FILE=$BACKUP/$NOW/$db/$db.sql.gz
  echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
done

### Создаем один большой файл для его последующей закачки ###

DUMPFILE=$PREFIX_BACKUP-$NOW.tar.gz

ARCHIVE=$BACKUP/$DUMPFILE
ARCHIVED=$BACKUP/$NOW

$TAR -zcvf $ARCHIVE $ARCHIVED

### Закачиваем на FTP ###
cd $BACKUP
$FTP -n $FTPS <<END_SCRIPT
quote USER $FTPU
quote PASS $FTPP
cd $FTPD
mput $DUMPFILE
quit
END_SCRIPT

### Подчищаем за собой ###

rm -rf $ARCHIVED

Оригинал статьи: http://guruadmin.ru/page/skript-bekapa-vse-baz-mysql-i-zakachki-ih-na-ftp.