linux和windows服务器间文件增量同步:Rsync使用教程
对于运维人员,数据备份是日常重要而又必须做的工作,选择一种好的备份软件效率会大大提升。rsync 就是一款功能强大,高效,安全,速度快的文件增量传输工具。
一 、什么是rync ?
二、准备
源文件地址:192.168.0.1 centos7
目标文件地址:192.168.0.2 windows 10
请关闭防火墙:systemctl stop firewalld.service
查看防火墙状态:firewall–cmd –state
请将/etc/sysconfig/selinux文件中SELINUX的值为disable,修改后重启linux使修改生效, 否则将影响文件同步
以下步骤达到的效果:
客户端(应用服务器、文件源服务器)192.168.0.1 中进行同步的文件夹下的内容(/usr/lmr/backup/)同步复制到服务器(备份服务器、目标服务器)192.168.0.2 中(E:桌面新建文件夹)。
三、安装配置 Rsync服务端(linux)
1、检查有没有安装rsync
2.安装rsync
目前Llinux各大发行版操作系统都已安装rsync ,可以通过rysnc —version查看当前版本,需要安装最新版本的,可到 rysnc 的官方网站:http://rsync.samba.org/ 下载最新的版本,编译安装。
#yum install -y rsync ####yum 安装
编译安装:
#wget https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz #tar -zxvf rsync-3.1.3.tar.gz #cd rysnc-3.1.3 #./configure --prefix=/usr/local/rsync #make && make install
3.配置rsync
ln -s /etc/rsyncd.conf #关联rsync的默认配置文件,使我们的配置文件生效,会创建rsyncd.conf文件
vi rsyncd.conf
rsyncd.conf(rsync服务的主要配置文件,它控制rsync服务的各种属性,下面给出一个rsyncd.conf文件的例子
#进行同步或者备份的用户,nobody 为任何用户 uid = root #进行备份的组,nobody为任意组 gid = root #端口 port = 873 #如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true.但是一般不需要,选择no或false use chroot = yes read only = on #不允许列清单 list = no #最大连接数 max connections = 4 #pid文件的存放位置 #pidfile = /var/run/rsyncd.pid #锁文件的存放位置 lock file=/var/run/rsyncd.lock #日志文件的存放位置 log file = /var/log/rsyncd.log motd file = /etc/rsyncd/rsyncd.motd # //此文件定义完成后系统会自动创建 exclude = lost+found/ transfer logging = yes #覆盖客户指定的IP超时时间,也就是说rsync服务器不会永远等待一个崩溃的客户端。 timeout = 900 ignore nonreadable = yes # //同步时跳过没有权限的目录 dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # //传输时不压缩的文件 #哪些电脑可以访问rsync服务,这里可以指定单个IP,也可以指定整个网段,能提高安全性。格式是ip 与ip 之间、ip和网段之间、网段和网段之间要用空格隔开 #hosts allow = 172.25.0.110 #哪些电脑不可以访问rsync服务 #hosts deny = 172.25.0.0/24 #这里是认证模块名,即跟samba语法一样,是对外公布的名字 [backup] comment = this is module for backup #这里是参与同步的目录 path = /usr/lmr/backups/ #可以忽略一些无关的IO错误 ignore errors #允许可读可写 read only = no #认证的用户名 auth users = root #密码文件存放地址 secrets file = /etc/rsyncd.pass
注:auth users = redhat 认证的用户名 这个名字是服务器端实实在在存在用户,大家不要直接跟步骤走却忽略了这点。如果服务器端少了这个的话我估计你的数据同步就实现不了,大家要谨记
echo "root:123" > /etc/rsyncd.pass
root:上一步设置的登录用户名;123:文件的密码,自己随意设;且此步创建了rsyncd.pass文件
修改密码文件权限
chmod 600 /etc/rsyncd.pass
# vi /etc/rsyncd.motd
*****************************************************
Welcome to use the zxl's rsync services!
*****************************************************
启动rsync服务
#/usr/bin/rsync --daemon
#netstat -lntup |grep rsync
#ps -ef |grep rsync |grep -v grep
#echo "/usr/bin/rsync --deamon">>/etc/rc.local #cat /etc/rc.local
四、安装rsync客户端(windows)
1.下载并安装
客户端下载[cwRsync_4.1.10_客户端_windows.zip]
https://www.jb51.net/softs/55934.html#downintro2
安装后如下图,红色的是新增的一个password.txt
password.txt内容如下
123
也就是对应的centos上rsync.passwd 的密码一样
2、执行命令
./rsync.exe -avzP --port=873 --password-file=/cygdrive/e/软件/cwRsync/bin/password.txt root@192.168.0.1::backup /cygdrive/e/桌面/新建文件夹
也可直接这样写:
"E:软件cwRsyncbinrsync.exe" -avzP --port=873 --password-file=/cygdrive/e/软件/cwRsync/bin/password.txt root@192.168.0.1::backup /cygdrive/e/桌面/新建文件夹
这段命令的意思简单说下
–port=873 #端口
root #执行数据同步的用户
192.168.0.1 #服务器地址
backup #模块名称,既rsync服务端配置文件中的[backup]
/cygdrive/e/桌面/新建文件夹 #表示本地的同步文件夹,/cygdrive/e/等同于e:/
如果指定
–delete #从cwRsync客户端目录 e:/桌面/新建文件夹 中删除与Rsync服务端 /usr/lmr/backup 目录中不相同的数据,即保证两边的数据完全一致
/cygdrive/e/软件/cwRsync/bin/password.txt #密码文件
五、定时备份
1.linux定时备份
创建定时备份任务,A主机上将要备份/home/data 文件同步到B主机(172.25.0.150) 下/backup目录。
vim AtoBbacku.sh #!/bin/bash rsync -avzP --delete --password-file=rsyncd.secrets /home/data root@172.25.0.150::/backup
chmod 755 AtoBbacku.sh
crontab -e
30 23 * * * sh -x /AtoBbacku.sh
2.windows备份
1>新建rysnc.txt文件,填入以下内容
@echo off
"E:软件cwRsyncbinrsync.exe" -avzP --port=873 --password-file=/cygdrive/e/软件/cwRsync/bin/password.txt root@172.25.0.1::backup /cygdrive/e/桌面/新建文件夹
2>开启定时任务
批处理完成了,怎么来实现周期性的运行该脚本呢?windows自带了非常强大的定时任务功能。进入计算机管理(此电脑右键“管理”),在系统工具->任务计划程序->任务计划程序库中能看到你电脑所有的定时任务,右键可以创建基本任务
按图中输入名称及描述,点击下一步设置触发器(任务触发时间)
点击下一步设置任务执行操作,这里选择启动程序
选择刚才制作的bat脚本,点击下一步
点击完成创建任务
选择刚创建的任务,右键点击属性打开属性对话框,点击触发器并双击已设置的触发器设置任务重复执行
点击确定完成定时任务设置,右击任务启动任务。
六、rsync六种不同的工作模式:
1.拷贝本地文件,将/home/coremail目录下的文件拷贝到/cmbak目录下
$ rsync –avSH /home/coremail/ /cmbak/
$ rsync –av /home/coremail/ 192.168.11.12:/home/coremail/
$ rsync –av 192.168.11.11:/home/coremail/ /home/coremail/
4.拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机
$ rsync -av root@172.16.78.192::www /databack
5.拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式
$ rsync -av /databack root@172.16.78.192::www
6.显示远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可
$ rsync -v rsync://192.168.11.11/data
link: http://luomuren.top/articles/2021/04/06/1617641017252.html
原文地址:https://blog.csdn.net/a772304419/article/details/132431332
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_41776.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!