ZooBeeN | Дата: Среда, 18.07.2012, 10:04 | Сообщение # 1 |
Главный линуксоид (на этом сайте) :)
Группа: Администраторы
Сообщений: 134
Репутация: 502
Статус: Offline
| (непроверено!!!)
server1.example.com – Главный сервер mirror.example.com – Сервер для Бекапа
1 Установка rsync На сервер server1.example.com и mirror.example.com
(Все по выполняеться от root)
apt-get install rsync
В других дистрибутивах Linux вы должны использовать Yum (Fedora / CentOS) или YaST (SuSE), чтобы установить Rsync.
2 Создание пользователя server1.example.com
(Все по выполняеться от root!)
useradd -d /home/someuser -m -s /bin/bash someuser
Назначим пароль пользователю:
passwd someuser
3 Test rsync На машине на которой будет производиться beckup Выполнитте:
rsync -avz -e ssh someuser@server1.example.com :/var/www/ /var/www/
Вы должны увидеть что-то вроде этого. Ответ yes:
The authenticity of host 'server1.example.com (192.168.0.100)' can't be established. RSA key fingerprint is 32:e5:79:8e:5f:5a:25:a9:f1:0d:ef:be:5b:a6:a6:23. Are you sure you want to continue connecting (yes/no)? <-- yes
Затем введите пароль, и вы увидите, что server1.example.com / VAR / WWW каталоге отражена в / VAR / WWW по mirror.example.com.
( У пользователя от которого будет производиться beckup должны бить права чтения на каталог / VAR / WWW на server1.example.com )
4 Создадим ключ на mirror.example.com На сервере mirror.example.com:
(Все по выполняеться от root!)
mkdir /root/rsync ssh-keygen -t dsa -b 1024 -f /root/rsync/mirror-rsync-key
Увидите чтото такое) :
Generating public/private dsa key pair. Enter passphrase (empty for no passphrase): [press enter here] Enter same passphrase again: [press enter here] Your identification has been saved in /root/cron/mirror-rsync-key. Your public key has been saved in /root/cron/mirror-rsync-key.pub. The key fingerprint is: 68:95:35:44:91:f1:45:a4:af:3f:69:2a:ea:c5:4e:d7 root@mirror
Скопируем ключ на server1.example.com:
На хосте mirror.example.com виполним следующее: (Все по выполняеться от root.)
scp /root/rsync/mirror-rsync-key.pub someuser@server1.example.com :/home/someuser/
Птеперь зайдите на сервер как someuser:
server1.example.com:
(Все по выполняеться от someuser!)
mkdir ~/.ssh chmod 700 ~/.ssh mv ~/mirror-rsync-key.pub ~/.ssh/ cd ~/.ssh touch authorized_keys chmod 600 authorized_keys cat mirror-rsync-key.pub >> authorized_keys
Отредактируем файл авторизации:
server1.example.com: (Все по выполняеться от someuser!)
Есть так:
vi /home/someuser/.ssh/authorized_keys ssh-dss AAAAB3NzaC1kc3MAAA[...]lSUom root@mirror
Нужно так:
command="/home/someuser/rsync/checkrsync",from="mirror.example.com",no-port-forwarding,no-X11-forwarding,no-pty ssh-dss AAAAB3NzaC1kc3MAAA[...]lSUom root@mirror
(Ключ Наш вписываем)
Делаем скрипт:
server1.example.com:
(Все по выполняется от someuser!)
mkdir ~/rsync vi ~/rsync/checkrsync
#!/bin/sh
case "$SSH_ORIGINAL_COMMAND" in *\&*) echo "Rejected" ;; *\(*) echo "Rejected" ;; *\{*) echo "Rejected" ;; *\;*) echo "Rejected" ;; *\<*) echo "Rejected" ;; *\`*) echo "Rejected" ;; rsync\ --server*) $SSH_ORIGINAL_COMMAND ;; *) echo "Rejected" ;; esac
chmod 700 ~/rsync/checkrsync
6 Проверка rsync On mirror.example.com
mirror.example.com:
(Все по выполняеться от root!)
rsync -avz --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -i /root/rsync/mirror-rsync-key" someuser@server1.example.com :/var/www/ /var/www/
Эсли синхронизация пройшла без запроса пароля для пользователя someuser Все зделано верно.
7 Создаем Cron Job На mirror.example.com.
crontab -e as root:
mirror.example.com:
(Все по выполняеться от root!)
crontab -e
Создаем роботу так:
*/5 * * * * /usr/bin/rsync -azq --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -i /root/rsync/mirror-rsync-key" someuser@server1.example.com :/var/www/ /var/www/ This would run rsync every 5 minutes; adjust it to your needs (see
man 5 crontab
- научись зарабатывать большие деньги! )))
|
|
| |