billing:mysql_backup_scp

Резервное копирование можно осуществить с помощью скриптов 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

Измените только месторасположение архива и имя пользователя на удаленном сервере.

Всё, теперь можно спать спокойно)

  • billing/mysql_backup_scp.txt
  • Последнее изменение: 9 лет назад
  • sergeev