• 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界面的不熟悉。

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

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

  • 相关阅读:
    mac中导出CSV格式在excel中乱码
    Android Gradle与Gradle插件的对应关系
    【算法】二叉树的前序、中序、后序、层序遍历和还原。
    关于Java虚拟机
    从Java synchronized和volatile说起
    【程小白】Java基本特性
    Android一键锁屏APP
    Fragment的生命周期
    学习大数据必须了解的大数据开发课程大纲
    学习大数据这三个关键技术是一定要掌握!
  • 原文地址:https://www.cnblogs.com/davidz/p/16178802.html
Copyright © 2020-2023  润新知