From: Vadim Kravciuk <vadim@phpdevs.com>
Date: Mon, 22 Mar 2004 14:31:37 +0000 (UTC)
Subject: Резервное копирование MySQL
Оригинал: http://www.phpdevs.com (PHP Devs)
Итак, краткий пример как самому можно быстро организовать бакап базы
данных не сервере, ну и соответственно не зависить от хостера, бакапит
он или нет.
Ниже приведен пример скрипта который и занимается этой черной работой.
Сразу же предупреждаю, что скрипт бакапит только те базы, до которых
он имеет права доступа, и если вы внесли "чужие" базы, то они не будут
сохранены.
tar -cvf ${BK_DIR}/sql-${FN}.tar *.sql
gzip ${BK_DIR}/sql-${FN}.tar
chmod 600 ${BK_DIR}sql-${FN}.tar.gz
rm *.sql
/* конец скрипта */
Настройка скрипта делается очень просто:
BK_DIR='/home/user_name/backup_dir/' - тут вы должны указать, в какую
директорию складывать бакап. Эта директория уже должна быть созданна.
PARAM='--quote-names --add-drop-table -udb_login -pdb_pass' - замените
db_login и db_pass соответственно на ваши логин и пароль к базе данных
(этот аккаунт должен иметь права select к тем базам, которые вы
собираетесь бакапить.)
/opt/mysql/bin/mysqldump ${PARAM} vadim_db1 > vadim_db1.sql - где
vadim_db1 это имя базы каторую бакапим. Если у вас MySQL
проинсталлирован не в /opt/mysql , то замените
/opt/mysql/bin/mysqldump на ваш путь к mysqldump.
Сохраните файл и выставите на него chmod 700 , тем самым защитив его
содержимое от посторонних глаз.
Все, работа сделанна, теперь можно запускать ./sql-backup.sh
Если вы все настроили правильно, то в /home/user_name/backup_dir/
должен появится файл с содержимым ваших баз. Иначе смотрите
конфигурацию скрипта заново.