Резервное копирование можно осуществить с помощью скриптов **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
Измените только месторасположение архива и имя пользователя на удаленном сервере.
Всё, теперь можно спать спокойно)