Резервное копирование можно осуществить с помощью скриптов sql_daily_dump и sql_hourly_dump, находящихся в папке DISTR/sql/sctipts дистрибутива mikbill.
sql_daily_dump - создаёт дамп раз в день. sql_hourly_dump - создаёт дамп раз в час.
Рассмотрим создание резервной копии раз в день применив скрипт sql_daily_dump.
#!/bin/sh fn=`/bin/date +%m_%d` /usr/bin/mysqldump -q -A -a -uroot -ppassword -hlocalhost > /root/buckup/mysql/daily/sqldump$fn.sql /bin/gzip -f "/root/buckup/mysql/daily/sqldump$fn.sql"
Генерируется имя имя архива, затем с помощью mysqldump производится дамп базы данных в определённую дирректорию и затем архивируется.
Важно: -uroot -ppassword - имя пользователя и пароль указывайте без пробела.
Также проверьте путь куда будет сохранять и архивироваться дам, в данном скрипте сохраняется в
/root/buckup/mysql/daily/
Затем добавим в планировщик выполнение этого задания:
mcedit /etc/crontab
В конец файла добавьте:
10 5 * * * root /root/sql_daily_dump > /dev/null
Выполнять /root/sql_daily_dump в 5-10 утра.
Скприпт sql_daily_dump можно дополнить дополнительным копированием дапма на другой сервер, всё таки 2 копии лучше чем одна. Осуществлять это будем с помощью утилиты scp. Утилита scp естественно запрашивает пароль который планировщик ввести не сможет, поэтому используем открытый сертификат и передадим его удалённому серверу. Если у вас нет открытого SSH-ключа сгенерируйте его.
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: The key's randomart image is: +--[ RSA 2048]----+ | | |. o + . | |.. * = | | . B + S | |. . @ . | | .o | +-----------------+
Три раза жмём Enter. Будет предложено имя у куда сохранить, в данном случае /root/.ssh/id_rsa и пароль.
Передадим копию ключа
ssh-copy-id -i .ssh/id_rsa.pub user@IP-backup-server
.ssh/id_rsa.pub - Ваш pub ключ. user - Имя пользователя на удаленном сервер. IP-backup-server - IP адрес удаленного сервера.
Теперь попробуем что нибудь скопировать
scp test.txt user@10.10.1.1:/home/user test.txt 100% 295 0.3KB/s 00:00
Пароль не был запрошен.
Теперь добавим в скрипт sql_daily_dump выполнение копирования.
/usr/bin/scp /root/buckup/mysql/daily/sqldump$fn.sql.gz user@10.10.1.1:/home/user/backup/mikbill
Измените только месторасположение архива и имя пользователя на удаленном сервере.
Всё, теперь можно спать спокойно)