Итак, краткий пример как самому можно быстро организовать бакап базы данных не сервере, ну и соответственно не зависить от хостера, бакапит он или нет.
Ниже приведен пример скрипта который и занимается этой черной работой. Сразу же предупреждаю, что скрипт бакапит только те базы, до которых он имеет права доступа, и если вы внесли "чужие" базы, то они не будут сохранены.
/* начало скрипта sql-backup.sh */ #!/bin/sh
FN=`/bin/date +%Y-%m-%d` BK_DIR='/home/user_name/backup_dir/' PARAM='--quote-names --add-drop-table -udb_login -pdb_pass'
cd ${BK_DIR} /opt/mysql/bin/mysqldump ${PARAM} vadim_db1 > vadim_db1.sql /opt/mysql/bin/mysqldump ${PARAM} vadim_db2 > vadim_db2.sql
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/ должен появится файл с содержимым ваших баз. Иначе смотрите конфигурацию скрипта заново. |