|
|
|
ДНЕВНИКИ
Назад >>
Сергей ШИБКА
>>
CentOS
16.04.2014 Rsync синхронизация и резервирование данных.
Rsync синхронизация и резервирование данных на другой сервер через ssh.
Есть основной первичный сервер Primary (IP: 192.168.150.1) и вторичный Secondary (IP: 192.168.150.2) . Необходимо резервировать и синхронизировать данные с первичного на вторичный сервер.
Выполняем на первичном сервере, это сделает копию и синхронизацию каталога /www/squid с первичного сервера на вторичный сервер в папку /www/squid:
rsync -cavzrP -e ssh /www/squid work@192.168.150.2:/www/squid
Резервирование будет происходить от имени пользователя work (пользователь должен присутствовать на вторичном сервере), необходимо будет ввести его пароль.
Если необходимо автоматизировать этот процесс через cron, то ввод пароля будет мешать этой процедуре. Необходимо избавиться от его ввода используя публичный ключ RSA или DSA.
На первичном сервере от имени пользователя (например: work) под которым будет происходить резервирование для генерации ключа выполняем:
ssh-keygen -t rsa
или
ssh-keygen -t dsa
-t rsa /тип ключа rsa для первой версии ssh, dsa для второй версии ssh/
После выполнения в папке пользователя work появится папка .ssh, а в ней два файла id_dsa и id_dsa.pub
Идем теперь на вторичный сервер. На нем в конфиге /etc/ssh/sshd_config включаем строки:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
После изменений перезапускаем сервис:
service sshd restart
Создаем пользователя work на этом же вторичном сервере. Создаем в папке пользователя work папку .ssh, в нее копируем файл публичного ключа id_dsa.pub и переименовываем его в authorized_keys. Права на каталог должны быть 700, на файл 600.
Выполняем на первичном сервере:
rsync -cavzrP -e "ssh -i /home/work/.ssh/id_dsa" /www/squid/ work@192.168.150.2:/www/squid/
Резервирование должно выполниться без запроса пароля пользователя. Теперь можно добавлять задание в cron.
Если необходимо локальное резервирование и синхронизация на отдельный диск, то выполняем:
rsync -cavzrP /www/squid/ /mnt/reserv/www/squid/
-c /проверка контрольной суммы/
-a /режим архивирования/
-v /вывод имен копируемых файлов/
-z /режим сжатия/
-r /рекурсивное копирование/
-P /прогресс копирования/
Скрипт rsync.sh, для синхронизации через cron по нужным дням:
#!/bin/bash
if [ "$1" != "" ]
then
#rsync -cavzrP --log-file=/mnt/BackUp/Rsync/rsync-kbpa.log /mnt/Arh500Gb/KBPA /mnt/BackUp/Rsync/$1
rsync -cavzrP --log-file=/mnt/BackUp/Rsync/rsync-media.log /mnt/Arh500Gb/MEDIA /mnt/BackUp/Rsync/$1
else
echo "Необходимо задать входной параметр ввиде числа для имени папки за день недели.
Например: понедельник равен 1, вторник равен 2 и т.д. Пример ввода: ./rsync 1"
fi
###
• комментарии (0)
[ Назад ]
|
|
|