Я пробовал использовать rsyncd
для передачи проектов с клиента на сервер (операция push). rsync
( 3.1.2
) установлены и работают как на клиенте, так и на сервере, при этом на сервере работает rsyncd
. rsyncd.conf
выглядит следующим образом:
pid file = /run/rsyncd.pid
strict mode = false
log file = /var/log/rsync.log
[dir1]
comment = test folder dir1
path = /opt/dir1/
uid = user_name
gid = group_name
read_only = false
когда я попробовал следующую команду,
rsync -aurv /path/to/dir1/ user@host_name::dir1
я получил следующие ошибки:
rsync: getaddrinfo: host_name 873: Temporary failure in name resolution
rsync error: error in socket IO (code 10) at clientserver.c(125) [sender=3.1.2]
Клиент и целевой сервер соединены через сервер-бастион. Нет проблем, если я просто попробую,
rsync -aurv /path/to/dir1/ user@host_name:/path/to/dir1
Мне интересно, как исправить ошибки.
Ура
Ошибка заключается в том, что поиск DNS для имя_хоста
не выполняется, о чем сообщает ошибка:
getaddrinfo: ... failure in name resolution
Чтобы исправить это, вы можете обновить свою команду, чтобы использовать Вместо этого IP-адрес:
rsync -aurv /path/to/dir1/ user@1.2.3.4::dir1
или для IPv6:
rsync -aurv /path/to/dir1/ user@[fe80::1]::dir1
В противном случае вы могли бы добавить запись в / etc / hosts
, чтобы разрешить имя или иным образом исправить ваши проблемы с DNS.
Если вы используете ssh для своего транспорта rsync, вы не используете rsyncd для завершения удаленного соединения (которое является ссылкой на TCP 873). Otoh, если вы просто используете отдельный туннель ssh для перенаправления TCP 873 через сервер rsyncd внутри, тогда ваш клиент rsync фактически будет подключаться к localhost, и ssh будет пересылать.
Синтаксис с двойным двоеточием указывает на собственный протокол rsync (или rsync: //). Без этого он будет использовать транспортный метод rsh / ssh.