Есть ли способ использовать plink с rsync в Windows?

Я использую rsync для синхронизации файлов между локальным и удаленным узлом. Я также использую plink для автоматизации ввода пароля SSH.

что я не могу понять, так это как использовать rsync с plink. Это то, что я думаю, синтаксис должен быть:

rsync -args --rsh="plink user@remote" local_dir/ :/remote_dir

но я получаю сообщения "доступ запрещен". Есть ли способ сделать это? Это просто?

редактировать чтобы отразить то, что я думаю, что синтаксис должен выглядеть. Раньше я сильно ошибался.

15
задан Corey
11.11.2022 10:06 Количество просмотров материала 3373
Распечатать страницу

3 ответа

Это полный пакетный файл для решения проблемы:

rem This is file: copy_win_inifiles_to_linux_via_rsync_with_pagent.bat

rem This is what I want:
rem
rem Windows with Putty+Pagent -> rsync -> Linux
rem 
rem pagent.exe is already loaded with my ssh-key
rem This ssh-key shall make the authentication to the remote rsyncd/Linux
rem
rem Environment for this Batch-file:
rem
rem plink.exe for Windows, derived from cygwin
rem download here:
rem    http://it-em.net/joomla/downloads/rsync.zip
rem    with german dokumentation in http://it-em.net/joomla/index.php?option=com_content&view=article&id=49&Itemid=54cms/front_content.php
rem cygnative.exe is needed from plink.exe (putty-suite) 
rem so that plink.exe works together wird rsync.exe
rem download cygnative here:
rem     http://diario.beerensalat.info/2009/08/18/new_cygnative_version_1_2_for_rsync_plink.html
rem
rem Filetree looks like this:
rem + copy_win_inifiles_to_linux_via_rsync_with_pagent.bat
rem + bin/
rem      + rsync.exe
rem      + cygwin1.dll         # needed from rsync.exe
rem      + cygiconv-2.dll      # needed from rsync.exe
rem      + cyggcc_s-1.dll      # needed from rsync.exe
rem      + cygnative.exe       # standalone-program
rem      + plink.exe           # from putty-suite, standalone-program
rem + ini/                     # Here are the file which shall be transferred
rem      + bla.ini
rem      + foo.ini
rem
rem our current working is the same where this bat-file is

set SRC_DIR=./ini/
set DST_USER=yourusername
set DST_SERVER=your-linux-server.somewhere.com
set DST_PORT=22
set DST_DIR=/home/yourusername/what/ever/ini

bin\rsync.exe -v -d --delete -e="./bin/cygnative.exe ./bin/plink.exe -P %DST_PORT%" %SRC_DIR% %DST_USER%@%DST_SERVER%:%DST_DIR%
2
отвечен Richard Lippmann 2022-11-12 17:54

это, кажется, несовместимость в перенаправлении stdin/stdout между cygwin и собственными программами Win32.

кто-то сумел сделать обертку, которая решает проблему:

http://diario.beerensalat.info/2009/08/18/new_cygnative_version_1_2_for_rsync_plink.html

использование было бы что-то вроде:

rsync -args -e="cygnative plink" local_dir/ user@remote:/remote_dir
1
отвечен hectorct 2022-11-12 20:11

Я обычно делаю свои rsyncs через ssh с чем-то подобным:

rsync-args-e "ssh-i .СШ/мой-ключ" user@hostname:/dir1 / dir2

вы можете попробовать заменить соответствующую команду plink или putty.

0
отвечен Xenoactive 2022-11-12 22:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх