windows文件通过rsync自动同步到Centos或者Truenas

最近有这样的一个需求,就是我ERP备份的数据库,我想自动同步到我的TrueNAS服务器上。但我的ERP服务器是Windows。

怎么能用rsync功能呢?

rsync估计大家都不会陌生。他是一款Linux非常好的同步软件。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限、时间、软硬链接。第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分。传输数据过程中可以实行压缩及解压缩操作,减少带宽流量。支持scp、ssh及直接socket方式连接,支持匿名传输。支持Linux,Window平台。写本文的时候,window版最新版为4.1.0版

官网:http://rsync.samba.org/

Linux版下载:http://rsync.samba.org/download.html

Windows版下载:

客户端:cwRsync_4.1.0_Installer.zip 服务器文件同步软件客户端

服务端:cwRsyncServer_4.1.0_Installer.zip服务器文件同步软件 服务器端

现在官方开始了收费版本,建议从脚本之家下载免费版本

然后我们这里呢先讲一下rsync传输中的一些参数。

大家可以根据需要来酌情添加参数。

参数说明

-a 参数,相当于-rlptgoD,

-r 是递归

-l 是链接文件,意思是拷贝链接文件;

-p 表示保持文件原有权限;

-t 保持文件原有时间;

-g 保持文件原有用户组;

-o 保持文件原有属主;

-D 相当于块设备文件;

-z 传输时压缩;

-P 传输进度;

-v verbose,详细模式输出;

-u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器时钟的同步;

--progress 显示备份过程;

--delete 删除那些DST中SRC没有的文件,用作同步文件用;

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

说了一大堆,现在开始言归正传了。

我首先是在我的Windows上面安装了rsync服务器端。

安装完成后的效果就是这样。

 

 

我们主要是要修改rsyncd.conf的配置文件。

我的配置如下:

uid=0
gid=0
use chroot=false
strict modes=false
hosts allow=*
max connections=5
lock file=rsyncd.log 
port=873

# Module definitions
[backup]
path=/cygdrive/D/ERPdatabak
auth users=Administrator
secrets file=/cygdrive/d/Setting/Rsync/rsync_db.ps
read only=no
list=no
transfer logging=yes

 这里面有些需要说明。[backup] 代表同步模块。你可以添加好几个模块,同时同步都可以。

然后有一点要注意,因为我的是Windows,所以在Windows路径的时候要注意,比如d:\setting .这是Windows写法,在这个配置文件应该写成,/cygdrive/d/setting/ 要这样写。好像是POSIX风格来写。

然后就是你要备份的文件夹,需要给他相对应的权限。我都是用的administrator的权限。

 

然后就去把他的服务开起来,

 

 

 

服务开启之后,然后登入账户,我也改成了administrator 超级管理员了。这个你们可以随意发挥。

最后自测一下rsync服务器是否联通。

 

 显示30.0 .就代表服务正常。

然后我们要根据我们刚刚rsyncd.conf的配置,来配置访问的密码文件和权限。

 

 密码我们也配置好了。

然后在Centos上也创建一个密码文件,并赋予600权限。

 

 

 

 

 

 可以看到已经是600权限了。如果不是,就是chmod 600 设置一下。

把我Centos上的/tmp/临时目录推送到我的Windows看下。

 

 

 

 

 

 

成功了,过来了。

rsync -avz /tmp/ Administrator@192.168.19.8::backup --password-file=/root/backup_passwd

目录放在前面就是推送过去,放在后面,则是把服务器上的目录拉取过来。

我们的目标是在truenas上面实现,把Windows的数据库全部推送到truenas上面来。

这个是我现有NAS的版本。

 

 同样的在NAS的shell上面要建立一个密码文件。

 

 

 

 600权限。

 

 

测试是成功的状态。

这次我们是把服务器端的数据拉取过来。

 

 

rsync -avz --progress --port=873 --password-file=/root/backup_passwd Administrator@192.168.19.8::backup /mnt/DATA/DATABackup/rsync_bak

 

 rsync -apvz --progress --delete --port=873 --password-file=/root/backup_passwd Administrator@192.168.19.8::backup /mnt/DATA/DATABackup/rsync_bak   #这条命令保留了文件的属性,且把源目录没有的文件,在目标文件上删除了。大家各自根据自己所需吧

那很成功了。

我们直接添加一个计划任务就可以了。

 

 

我设置的是每天晚上12点开始同步。

这样我们的需求就达到了。

 

 

数据已经全部过来了。

 

 

还是很成功的。

实验也比较简单,耗时一天就完成了。

我也是参考了网络上面的两个案例。

链接我发出来供大家参考。

https://wenku.baidu.com/view/36bdb2e3b84cf7ec4afe04a1b0717fd5360cb2e7?bfetype=new

https://www.jb51.net/article/59034.htm

https://blog.csdn.net/sinat_27747695/article/details/114098005

https://blog.csdn.net/cyb0408/article/details/113093321

看完这些,应该就会有一些思路了。

我刚开始不成功,以为是用户权限和对NAS界面的不熟悉。

但是后面自己都慢慢克服了。

每个人的需求不一样,所以大家可能要根据自己的实际情况来调试。

 

posted @ 2022-04-22 14:35  逍遥姐夫  阅读(3015)  评论(0编辑  收藏  举报