включить rsync для постоянной работы

#linux #rsync

#linux #rsync

Вопрос:

У меня есть две машины, обе работают на Linux с centos 7. Я установил пакеты rsync на оба из них, и я могу синхронизировать каталог с одного компьютера на другой.

Прямо сейчас я выполняю синхронизацию вручную, каждый раз, когда я хочу синхронизировать, я запускаю следующую строку:

 rsync -r /home/stuff root@123.0.0.99/home
  

Мне было интересно, есть ли способ настроить rsync для автоматической синхронизации, каждые некоторое время или предпочтительно, когда в домашнем каталоге появляется новый файл подкаталога?

Спасибо за вашу помощь. Любая помощь будет оценена.

Ответ №1:

Если вы хотите выполнять rsync каждые некоторое время, вы можете использовать cronjobs , который можно настроить для выполнения определенной команды каждый раз, и если вы хотите запускать rsync при обновлении или модификации, которые вы можете использовать lsyncd . ознакомьтесь с этой статьей об использовании lsyncd

Обновление: поскольку ссылки могут устареть, я добавлю этот краткий пример (вы можете изменить его так, как вам больше подходит):

Сначала создайте ssh-ключ на исходном компьютере, а затем добавьте открытый ключ в ~/.ssh/authorized_keys файл на целевом компьютере.

На исходном компьютере обновите этот файл ~/.ssh/config следующим содержимым:

 # ~/.ssh/config
...
Host my.remote.server
    identityfile ~/.ssh/id_rsa
    IdentitiesOnly yes
    hostname 123.0.0.99
    user root
    port 22
...
  

И настройте свой lsyncd следующим образом, затем перезапустите службу lsyncd

 # lsyncd.conf
...
sync {
    default.rsyncssh,
    source="/home/stuff",
    host="my.remote.server",
    targetdir="/home/stuff",
    excludeFrom="/etc/lsyncd/lsyncd.exclude",
    rsync = {
         archive = true,
    }
}
...
  

Комментарии:

1. спасибо, я проверю это. При использовании lsyncd , будет ли он по-прежнему запрашивать у меня пароль каждый раз, когда он хочет синхронизировать?

2. Нет, вы можете настроить ключи ssh для входа в систему без пароля, они также объяснили это в этой статье

3. lsyncd Запускается ли новый только rsync после завершения последнего rsync ? Я спрашиваю, потому что одновременное rsync использование не имеет для меня смысла.

4. @Ini, я не уверен, но я думаю, что если это тот же каталог, он может подождать, чтобы отправить новый список файлов для синхронизации. Я не смотрел его во время синхронизации огромного содержимого :/

Ответ №2:

Для этого можно настроить почасовое задание cron. rsync сам по себе довольно эффективен, поскольку он только передает изменения. Вы можете найти больше информации о cron здесь: cron