Shell MySQL Backups - какое у вас решение?
Я ищу отличное решение для резервного копирования моих баз данных MySQL - все они. Я хотел бы, чтобы каждый, по крайней мере, в своем собственном файле. Мне нужна возможность FTP позже, но не сейчас. Сейчас мне просто нужно сохранить его на том же сервере, на котором он работает.
Что ты используешь?
Обновить
Я полагаю, я должен быть более ясным в том, что я прошу... Я ищу скрипт bash, который будет использовать mysqldump
создать отдельные файлы резервных копий для каждой базы данных или отдельный файл для таблицы, если таблица достаточно велика.
4 ответа
Вы можете использовать этот скрипт:
#!/bin/bash
BACKUP_DIR="/opt/backup"
MYSQL_USER=your_user
MYSQL_PASS=your_pass
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
DB_LIST="$($MYSQL -u $MYSQL_USER -p$MYSQL_PASS -Bse 'show databases')"
for db in $DB_LIST;
do
BACKUP_SUBDIR="$BACKUP_DIR/mysql_`date +%Y-%m-%d`"
BACKUP_FILE="$BACKUP_SUBDIR/$db.gz"
if [ ! -d $BACKUP_SUBDIR ]; then
mkdir -p $BACKUP_SUBDIR
fi
if [ -f $BACKUP_FILE ]; then
unlink $BACKUP_FILE
fi
$MYSQLDUMP -u $MYSQL_USER -p$MYSQL_PASS $db | $GZIP -9 > $BACKUP_FILE
done
Я использовал этот скрипт AutoMySQLBackup для моих mysqldumps. Делает ежедневные, еженедельные, ежемесячные резервные копии и ротации. Довольно удобно.
Эта ежедневная резервная копия создаст резервную копию вашей базы данных, и она будет создавать 4-дневные резервные копии и вращать их. Затем вы можете сделать резервную копию этой папки на удаленном сайте.
#! / bin / bash -x # # Marco Maldonado MySQL Backup # Версия 1.0 9 сентября 2008 г. # комментарии marco@penguincares.no-ip.org MYSQL=`which mysql` MYSQLDUMP=`which mysqdump` BACKUPS=/ Opt / резервное копирование dbs=`$MYSQL -u root -pYOURPASSWORD -Bse 'показать базы данных`` за дБ в $ дбс делать rm -rf $BACKUPS/$db.3 mv $BACKUPS/$db.2 $BACKUPS/$db.3 mv $BACKUPS/$db.1 $BACKUPS/$db.2 mv $BACKUPS/$db.0 $BACKUPS/$db.1 #mkdir $BACKUPS/$db.0 #$HOTCOPY $userpassword $db $BACKUPS/$db.0 mysqldump -u root -pIndr@sN3t $db > $BACKUPS/$db.0 сделанный
Убедитесь, что у вас есть папка внутри / opt и вы называете ее резервной копией
Я использую простой Bash-скрипт, который выполняет mysqldump, а затем rsync (легко использует ftp) для другой машины.
очень просто, но это работает!
нет необходимости снимать базу данных либо.
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
Люк