#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