Инкрементальный бэкап удаленного веб сервера с Mysql с помощью rsnapshot (CentOS, RHEL)
1. Делаем авторизацию по ключам
Для начала генерируем ключи на сервере бэкапов
1 | backup: ssh-keygen -t rsa -f ~/.ssh/backup_key_dsa -N "" |
В итоге у нас появятся два файла в папке ~/.ssh/ — backup_key_dsa и backup_key_dsa.pub. Второй из них необходимо передать на клиентскую машину, а первый ни в коем случае нельзя передавать куда-либо. На клиентской машине мы создадим отдельного пользователя для лучшей безопасности.
1 2 3 4 5 6 7 8 9 10 11 12 | client: useradd backup client: passwd backup # Вводим сложный пароль # Теперь обновляем файл /etc/sudoers, вводим команду client: visudo # Добавляем следующие строки в конец, тем самым # разрешаем доступ для пользователя backup # выполнение команд mysqldump и rsync backup ALL=/usr/bin/mysqldump backup ALL=/usr/bin/rsync |
Передаем публичный ключ на удаленный сервер (если на сервере уже были записаны другие ключи, то просто добавляем текст ключа из backup_key_dsa.pub в конец файла authorized_keys):
1 | backup: scp ~/.ssh/backup_key_dsa.pub backup@client:/home/backup/.ssh/authorized_keys |
И проверяем соединение
1 2 | backup: ssh backup@client -i ~/.ssh/backup_key_dsa backup@client ~ $ exit |
В данном случае мы авторизовались на удаленном сервере, с которого будем забирать данные бэкапа. Итак, теперь у нас есть связность между серверами для взаимодействия, переходим к следующей части.