使用putty选美身份验证从Windows到Linux的Rsync

时间:2014-05-07 11:49:56

标签: linux windows rsync putty

我想将一个目录从Windows rsync到Linux。

Linux:

没有运行rsyncd,应在Linux上调用命令行rsync。

Windows:

我在pagent.exe中加载了一个ssh-key 无需安装程序即可获得简单的批处理文件。 cygwin的rsync.exe不支持putty / pagent。

由于文件数量庞大,Robocopy并不好用。 如何在一个简单的批处理文件中从Windows到Linux的rsync

1 个答案:

答案 0 :(得分:2)

您不需要安装完整的cygwin,这个批处理文件中显示的一个小目录结构就足够了。需要一个小帮手才能结婚" cygwin和putty-worlds即:cygnative.exe

此批处理文件中描述了您所需要的一切:

rem This is file: rsync_some_winfiles_to_linux_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 + some-files-dir/          # Here are the file which shall be transferred
rem      + bla.txt
rem      + foo.txt
rem
rem our current working is the same where this bat-file is

set SRC_DIR=./some_files_dir/
set DST_USER=www-data
set DST_SERVER=your-destination-server-with-ssh.example.com
set DST_PORT=23765
set DST_DIR=/var/www/...what-you-like/some_files_dir

bin\rsync.exe -v -d --delete -e="./bin/cygnative.exe ./bin/plink.exe -P %DST_PORT%" %SRC_DIR% %DST_USER%@%DST_SERVER%:%DST_DIR%