默认分类

windows文件定时同步到远程rsync服务器

一、服务端配置

启动容器

sudo docker run -d -p 3322:22 -p 9973:873 -v /home/krsc/disk2/ui/data/:/data -e USERNAME=ui -e PASSWORD=password --name rsync-server apnar/rsync-server

需修改容器内文件/etc/rsyncd.conf,添加允许ip地址段10.65.90.0/24

实际配置文件如下

root@caa0ea2de406:/etc# vim rsyncd.conf 

pid file = /var/run/rsyncd.pid
log file = /dev/stdout
timeout = 300
max connections = 10
port = 873

[liu]
    uid = root
    gid = root
    hosts deny = *
    hosts allow = 192.168.0.0/16 172.16.0.0/12 127.0.0.1/32 10.65.90.0/24
    read only = false
    path = /data/liu
    comment = /data/liu directory
    auth users = ui
    secrets file = /etc/rsyncd.secrets

二、客户端安装软件

安装软件

cwRsync_3.1.0_Installer.zip

添加环境变量

path=C:Program Files (x86)cwRsyncbin

2022-12-19T01:42:42.png

配置密码文件rsyncd.secrets,仅存储密码即可

客户端执行命令,引用c盘根目录下密码文件,同步d:/app/AndroidKiller-master文件夹到远方服务器

rsync.exe  -avzP -vzrtopgu --progress --iconv=GBK,UTF-8 --port=9973 --password-file=/cygdrive/c/rsyncd.secrets /cygdrive/d/app/AndroidKiller-master ui@10.80.0.30::data

注:

在windows和linux之间用rsync同步文件时中文文件名会出现乱码,这个问题主要是windows和linux之间文件名编码不同造成的。windows下文件名编码为GBK,而我的linux下的文件名编码为UTF-8。

(1)从windows客户端同步文件到linux时,必须在Linux端rsync服务端配置文件中加上如下一行:

charset = UTF-8

​ 在命令行下使用以下命令同步文件:

rsync -avzup --progress --iconv=GBK,UTF-8 --protect-args --password-file=/etc/rsync.pass rsync@192.168.0.1::module

​ 注:--iconv=UTF-8,GBK UTF-8指linux本地的编码,GBK指服务器端即windows的编码

(2)从linux同步文件到windows时,将编码调转过来就可以了。

添加windows任务计划

This is just a placeholder img.