Я пытался использовать 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 для host_name
не работает, о чем вам сообщает ошибка:
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.