一、快速通过rsync上传数据
1、下载cwrsync,从过此处下载
2、解压软件至C盘,并重命名为cwrsync,如:C:\cwrsync
3、进入C:\cwrsync\bin目录,打开cmd
4、通过下面命令完成上传
#/cygdrive/c/xxx表示C盘下xxx文件或文件夹,root表示linux服务器(172.17.17.108)的ssh登录用户,/data/rsync表示llinux服务器的目录路径
rsync -avz -e "./ssh -p 22" /cygdrive/c/xxx root@172.17.17.108:/data/rsync
#断点续传
#-P 选项是 --partial 和 --progress 的组合,既可以显示进度,又可以在传输中断时继续传输
rsync -avzP -e "./ssh -p 22" /cygdrive/c/xxx root@172.17.17.108:/data/rsync
二、免密码上传文件
#生成公钥和私钥
ssh-keygen
C:\Users\XXX\.ssh\id_rsa ==> 这个是私钥,
C:\Users\XXX\.ssh\id_rsa.pub ==> 这个是公钥,需要给到Linux服务器注册
#将id_rsa.pub公钥的内容,追加到Linux服务器的authorized_keys文件里
/root/.ssh/authorized_keys
#测试免密码登录,注意id_rsa复制到在当前目录下
ssh root@172.17.17.108 -i id_rsa
#免密码上传文件
rsync -avzP -e "./ssh -p 22 -o StrictHostKeyChecking=no -i id_rsa" /cygdrive/c/xxx root@172.17.17.108:/data/rsync
三、脚本监听上传大文件
每个半个小时,判断rsync是否运行,如果没有运行,重新启动,解决rsync因网络等因素导致的上传失败,通过cwrsync目录中的cwrsync.cmd文件进行修改如下:
@ECHO OFF
REM *****************************************************************
REM
REM CWRSYNC.CMD - Batch file template to start your rsync command (s).
REM
REM *****************************************************************
REM Make environment variable changes local to this batch file
SETLOCAL
REM Specify where to find rsync and related files
REM Default value is the directory of this batch file
SET CWRSYNCHOME=%~dp0
REM Make cwRsync home as a part of system PATH to find required DLLs
SET PATH=%CWRSYNCHOME%\bin;%PATH%
set "processName=rsync.exe"
:loop
tasklist | find /i "%processName%" >nul
if errorlevel 1 (
echo %date% %time% %processName% is not running.
start cmd /c "rsync -azP -e "ssh -p 22 -o StrictHostKeyChecking=no -i id_rsa" /cygdrive/c/xxx root@172.17.17.108:/data/rsync"
) else (
echo %date% %time% %processName% is running.
)
timeout /t 1800
goto loop