Назад | Перейти на главную страницу

Синхронизируйте файлы между двумя компьютерами, подключенными к одной сети, с помощью команды rsync

Возможный дубликат:
Нужна помощь с rsync

У меня есть два компьютера, подключенных к одной сети, скажем, компьютер A и компьютер B. На компьютере A есть несколько файлов резервных копий в каталоге, который необходимо синхронизировать с компьютером B (необходимо создать точное зеркало). Здесь условие: я должен сделать это, используя rsync команда.
Как я могу это сделать? Должен ли я делать это, используя имя хоста компьютеров.
Пожалуйста, помогите мне как можно скорее. заранее спасибо

Если вы хотите сделать это автоматическим, вы должны охватить некоторые основы.

1-й rsync подключается через ssh. Вы должны убедиться, что у пользователя, которого вы будете использовать для rsyncing, установлен ключ ssh на удаленном компьютере (в качестве примера я буду использовать пользователя root).

2. Примите решение, как именно вы будете выполнять синхронизацию (с сервера на резервный сервер или с резервного сервера на сервер)
Я сделаю это, пока скрипт запущен на резервном сервере.

  • Сгенерировать ключ на резервном сервере (выполнить команду)

    $ ssh-keygen
    
  • Скопируйте сгенерированный ключ на удаленный (сервер, файлы которого нужно скопировать) компьютер:

    $ ssh-copy-id -i /root/.ssh/id_rsa.pub root@server-ip:
    

теперь ваш сервер будет подключаться к удаленному серверу без запроса пароля.
отсюда вы можете сделать что-то вроде этого:

#!/bin/bash
## Rsync script
###
PATH=/usr/bin:
rsync -auvz root@server-ip:/path/to/directory/ /backup-server/path/to/backup/

помните о том, что:

  1. если вы поместите "/" в конце путей, это означает "синхронизировать СОДЕРЖАНИЕ этого каталога" ( /path/to/dir/ )
  2. если вы не поместите "/", он синхронизирует весь каталог ( /path/to/dir )
rsync src_user@src_hostname:src_dir/ trg_user@target_hostname:target_dir/

для проверки вариантов

rsync --help

или

man rsync