ZooBeeN | Дата: Среда, 18.07.2012, 09:42 | Сообщение # 1 |
Главный линуксоид (на этом сайте) :)
Группа: Администраторы
Сообщений: 134
Репутация: 502
Статус: Offline
| (не проверено!!!)
Положим, что нам необходимо периодически переносить данные с сервера источника (Server1) на сервер приемник (Server2). Обычно это может потребоваться для сохранения бекапов или синхронизации каких-то данных. Для этой цели предлагается использовать команду rsync и соединяться с удаленным сервером через SSH. В обычном режиме при соединении через SSH второй сервер будет запрашивать пароль, то есть требовать дополнительные действия от пользователя. Это не подходит для автоматизированного переноса данных. Поэтому процедура слегка усложняется.
Дано:
Server1 (источник) User: user1 Password: pass1 Папка для переноса: /backup/arch/
Server2 (приемник) User: user2 Password: pass2 Папка для приема информации: /hdd2/get/
1) Логинимся через SSH на Server1. 2) Server1: cd ~/ 3) Server1: mkdir .ssh Замечение: иногда из под текущего юзера это сделать невозможно (например при работе из под Plesk), в этом случае папку необходимо создавать из под root. 4) Server1: ssh-keygen -t rsa Наберите в качестве пути ./.ssh/id_rsa Затем два раза Enter 5) Переносим любым способом ~/.ssh/id_rsa.pub на Server2. Предположим, что мы положили его в папку /hdd2/ 6) Server2: cd ~/ 7) Server2: mkdir .ssh 8) Server2: cat /hdd2/id_rsa.pub >> ./.ssh/authorized_keys Если файл не существует, то он автоматически будет создан 9) Server2: chmod 700 ./.ssh/authorized_keys Необходимо в целях безопасности 10) Далее используем команду rsync с первого сервера. Для начала рекомендуется проделать это один раз вручную, во-первых, что бы проверить, как все работает, во-вторых, иногда требуется создать автоматический batch-файл, который для своего создания в первый раз требует выбрать yes или no вручную: Server1: nice -n +17 rsync -avz /backup/arch/ user2@Server2_IP:/hdd2/get/ Замечание: рекомендуется использовать nice что бы процесс копирования шел в фоновом режиме. 11) Теперь можно приступить к автоматизации через cron. Запишите эту команду в файл “rsync.sh”. Внимание зачастую для корректной работы требуется прописать полные пути до nice и rsync. В моем случае пути такие: /bin/nice -n +17 /usr/bin/rsync -avz /backup/arch/ user2@Server2_IP:/hdd2/get/
12) Создаем файл cron.txt со следующим содержимым (что бы не мучиться в редакторе vi) 30 5 * * * /bin/sh /backup/rsync.sh Эта команда означает, что бэкап будет выполняться каждый день в 5-30 утра.
Далее записываем cron для текущего юзера: Server1: crontab /backup/cron.txt
Заключение: для более гибкого управления переносом данных смотрите документацию по cron и rsync.
- научись зарабатывать большие деньги! )))
|
|
| |