Четверг, 18.04.2024, 18:49

Форум преданных пользователей UBUNTU

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: kostopolos  
Форум ubuntu linux » Компьютерный Софт » UBUNTU LINUX » Бекап файлов с помощью rsync Debian / Ubuntu
Бекап файлов с помощью rsync Debian / Ubuntu
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


- научись зарабатывать большие деньги! )))
 
Форум ubuntu linux » Компьютерный Софт » UBUNTU LINUX » Бекап файлов с помощью rsync Debian / Ubuntu
  • Страница 1 из 1
  • 1
Поиск: