Gibt es eine Möglichkeit, plink mit rsync unter Windows zu verwenden?

3797
Corey

Ich verwende rsync, um Dateien zwischen einem lokalen Verzeichnis und einem Remote-Host zu synchronisieren. Ich verwende plink auch, um den Eintrag der SSH-Passphase zu automatisieren.

Was ich nicht herausfinden kann, ist die Verwendung von Rsync mit Plink. Ich denke, dass die Syntax sein sollte:

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

Ich erhalte jedoch "Zugriff verweigert" -Meldungen. Gibt es eine Möglichkeit, dies zu tun? Ist es einfach

Bearbeitet, um zu zeigen, wie die Syntax aussehen sollte. Ich hatte es schon sehr falsch.

7

3 Antworten auf die Frage

2
Richard Lippmann

Dies ist eine vollständige Batch-Datei, um das Problem zu lösen:

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% 
Der Link zu `cygnative.exe` ist tot. Hier sind ein paar Alternativen, die ich gefunden habe: [this gist] (https://gist.github.com/silviuvulcan/7609c438f6ab5e51c8d19890e949565f) und [this zip] (http://franklinstrube.com/wp-content/uploads) /2013/03/cygnative1.2.zip). Ich habe die in der ZIP-Datei enthaltene ausführbare Datei verwendet, kann jedoch für keine der beiden Quellen bürgen. Der ursprüngliche Autor scheint seinen Blog heruntergefahren zu haben, allerdings ist seine Website [hier] (http://frank-behrens.de). starfry vor 7 Jahren 0
1
hectorct

Es scheint eine Inkompatibilität bei der stdin / stdout-Umleitung zwischen cygwin und nativen Win32-Programmen zu sein.

Jemand hat es geschafft, einen Wrapper zu erstellen, der das Problem löst:

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

Die Verwendung wäre so etwas wie:

rsync -args -e="cygnative plink" local_dir/ user@remote:/remote_dir 
0
Xenoactive

Normalerweise mache ich meine rsyncs über ssh mit etwas ähnlich dem folgenden:

rsync -args -e "ssh -i .ssh / my-key" benutzer @ hostname: / dir1 / dir2

Sie können versuchen, den entsprechenden Plink- oder Putty-Befehl zu ersetzen.

Danke, aber es funktioniert nicht für mich. Bitte sehen Sie sich meine Bearbeitungen an, weil ich die Syntax des Befehls rsync ursprünglich durcheinander gebracht habe. Corey vor 12 Jahren 1