LINUX.ORG.RU
ФорумAdmin

rsync block device через netcat

 , ,


0

1

Всем привет. народ, не могу троха понять, как подружить rsync с –copy-devices и nc.

rsync -I --copy-devices --no-whole-file "$(readlink -f "/dev/myvg/lv001")" | nc 1.2.3.4 1234

просто заершает комманду

nc -l -p 1234 | rsync -I --write-devices --inplace "$(readlink -f "/dev/rem_vg/dest_lv")"

а эта ждет


давай поиграем в угадайку.

слушающий сокет ведь ты открываешь до того как к нему подключаешься? 🤡

nc -l -p 1234 слушает, а nc 1.2.3.4 1234 подключается к существующему сокету. или не подключается ;)

P.S.: отсутствие результатов выполнения приведенных выше команд отнюдь не облегчает диагностику подземных шумов в подвале.

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)
Ответ на: комментарий от aol

развею все сомнения по сокетам. аналогично я делаю с dd

dd if=/dev/myvg/mylv bs=2M | nc 1.2.3.4 1234
nc -l -p 1234 | dd of=/dev/remote_vg/newlv bs=2M

все идеально работает.

вопрос собственно стал в том, чтоб не гонять все 500-700Г а только разные блоки. на просторах интернета нашел, что rsync поновее такое умеет.

на одной машине вопросов нет где сразу и --copy-devices --write-devices. все гут. а тут захотелось таким же образом только на удаленную…

p.s. естественно, что слушающий сокет открывается первым…

alexni
() автор топика
Последнее исправление: alexni (всего исправлений: 1)

rsync через пайпы никак не работает. Там клиент-сервер.

Может через параметр --rsh можно как-то подсунуть nc вместо ssh, но не уверен.

Belkrr
()
Ответ на: комментарий от Belkrr

Забыл. У rsync еще есть режим демона. На принимающей стороне можно стартовать его через --daemon. В этом кейсе тоже можно без ssh обходиться.

Belkrr
()
Ответ на: комментарий от Belkrr

да собственно тут нет жесткой привязки к nc, можно и чз сысяш.

но не подсовуется user@host:«$(readlink -f «/dev/rem_vg/dest_lv»)»

может я не так силен в bash, подскажите кто знает

alexni
() автор топика
Ответ на: комментарий от alexni

user@host:«$(readlink -f «/dev/rem_vg/dest_lv»)»

Если ожидается, что readlink отработает на удаленной машине, то такого не будет. Все $() раскрываются локальным bash.

Если ssh настроен, то можно отдельно командой.

DEST_FILE=$(ssh ssh://user@host readlink -f /dev/rem_vg/dest_lv)
Belkrr
()

Только меня немного фрустрирует само желание отправлять не полный объем, а дельту по однонаправленному каналу, без обратной связи?

anonymous
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.