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
配置密码文件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任务计划