首页 > 系统相关 >[转帖]linux-windows文件实时同步:Rsync使用教程

[转帖]linux-windows文件实时同步:Rsync使用教程

时间:2024-03-06 11:00:49浏览次数:38  
标签:文件 Rsync windows E4% rsync 转帖 -- rsyncd root

http://luomuren.top/articles/2021/04/06/1617641017252.html#:~:text=linux-windows%E6%96%87%E4%BB%B6%E5%AE%9E%E6%97%B6%E5%90%8C%E6%AD%A5%EF%BC%9ARsync%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B%201%20%E4%B8%80%20%E3%80%81%E4%BB%80%E4%B9%88%E6%98%AFrync%20%EF%BC%9F%20rsync%20----%20remote,%E6%96%87%E4%BB%B6%20...%205%20%E4%BA%94%E3%80%81%E5%AE%9A%E6%97%B6%E5%A4%87%E4%BB%BD%201.linux%E5%AE%9A%E6%97%B6%E5%A4%87%E4%BB%BD%20%E4%B8%8Econtab%20%E7%BB%93%E5%90%88%EF%BC%8C%E5%AE%9A%E6%97%B6%E5%A4%87%E4%BB%BD%20

 

对于运维人员,数据备份是日常重要而又必须做的工作,选择一种好的备份软件效率会大大提升。rsync 就是一款功能强大,高效,安全,速度快的文件增量传输工具。

一 、什么是rync ?

  1. rsync ---- remote synchronize ,是一款实现远程同步功能的软件;
  2. rsync使用“Rsync算法”来同步文件,该算法只传送两个文件的不同部分,因此速度相当快;
  3. 同步文件的同时,可以保持原来文件的权限、时间 和目录结构;
  4. 对于多个文件来说,内部流水线减少文件等待的延时;
  5. rsync默认监听TCP 873端口,通过远程shell如rsh和ssh复制文件。同时要求必须在远程和本地系统上都安装sync.

二、准备

源文件地址: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

已安装
1.png
未安装
1.png

2.安装resync

目前Llinux各大发行版操作系统都已安装rsync ,可以通过rysnc --version查看当前版本,需要安装最新版本的,可到 rysnc 的官方网站:http://rsync.samba.org/ 下载最新的版本,编译安装。

#yum install -y rsync ####yum 安装

1.png
编译安装:

#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

rsync 安装完成,默认在/usr/local/rsync/bin下,配置后可以备份或者传输远程服务器数据。

注意:编译安装前得先安装gcc编译工具。

3.配置rsync

  1. 配置文件
    rsync的主要有以下三个配置文件:
    rsyncd.conf ----主配置文件,需要手动生成
    rsyncd.secrets ----密码文件
    rsyncd.motd ----rysnc服务器信息

我保存rsync配置文件的地址为:/usr/lmr/soft/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

定义 rsyncd.motd 文件

rsyncd.motd主要定义用户登录rsync服务的欢迎信息,可以自己根据需求定义,跟FTP登录界面一样如:

# vi /etc/rsyncd.motd
*****************************************************  
 Welcome to use the taranfly's rsync services!
*****************************************************

启动rsync服务

#/usr/bin/rsync  --daemon 
#netstat -lntup |grep rsync 
#ps -ef |grep rsync |grep -v grep

image.png

出现873端口表示启动成功

设置开机自启动

#echo "/usr/bin/rsync --deamon">>/etc/rc.local #cat /etc/rc.local

注: –daemon 是让rsync 以服务器模式运行

注:访问不了可能为防火墙问题,可将873端口打开,具体方法请百度

四、安装rsync客户端(windows)

1.下载并安装

客户端下载cwRsync_4.1.0_客户端_windows.zip文件
安装后如下图,红色的是新增的一个password.txt
image.png
password.txt内容如下

123

image.png
也就是对应的centos上rsync.passwd 的密码一样

2、执行命令

注:这里要进入rsync安装目录的bin目录执行

./rsync.exe -avzP --port=873 --password-file=/cygdrive/e/软件/cwRsync/bin/password.txt [email protected]::backup /cygdrive/e/桌面/新建文件夹

也可直接这样写:

"E:\软件\cwRsync\bin\rsync.exe" -avzP --port=873 --password-file=/cygdrive/e/软件/cwRsync/bin/password.txt [email protected]::backup /cygdrive/e/桌面/新建文件夹

这段命令的意思简单说下
–port=8877 #端口
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 #密码文件

运行起来,同步的效果如下
image.png

五、定时备份

1.linux定时备份

与contab 结合,定时备份

创建定时备份任务,A主机上将要备份/home/data 文件同步到B主机(172.25.0.150) 下/backup目录。

每天的晚上23:30 执行备份任务

vim AtoBbacku.sh #!/bin/bash rsync -avzP --delete --password-file=rsyncd.secrets /home/data [email protected]::/backup chmod 755 AtoBbacku.sh crontab -e 30 23 * * * sh -x /AtoBbacku.sh

2.windows备份

1>新建rysnc.txt文件,填入以下内容
@echo off "E:\软件\cwRsync\bin\rsync.exe" -avzP --port=873 --password-file=/cygdrive/e/软件/cwRsync/bin/password.txt [email protected]::backup /cygdrive/e/桌面/新建文件夹

将该文件另存为rysnc.bat文件,编码为ANSI
image.png

注:如果编码为utf8,文本中的中文会出现乱码导致执行出错。

2>开启定时任务

批处理完成了,怎么来实现周期性的运行该脚本呢?windows自带了非常强大的定时任务功能。进入计算机管理(此电脑右键“管理”),在系统工具->任务计划程序->任务计划程序库中能看到你电脑所有的定时任务,右键可以创建基本任务
image.png
按图中输入名称及描述,点击下一步设置触发器(任务触发时间)
image.png
点击下一步设置任务执行操作,这里选择启动程序
image.png
image.png
选择刚才制作的bat脚本,点击下一步
image.png
点击完成创建任务
image.png
选择刚创建的任务,右键点击属性打开属性对话框,点击触发器并双击已设置的触发器设置任务重复执行
image.png
点击确定完成定时任务设置,右击任务启动任务。

六、rsync六种不同的工作模式:

1.拷贝本地文件,将/home/coremail目录下的文件拷贝到/cmbak目录下

$ rsync -avSH /home/coremail/ /cmbak/

2.拷贝本地机器的内容到远程机器

$ rsync -av /home/coremail/ 192.168.11.12:/home/coremail/

3.拷贝远程机器的内容到本地机器

$ rsync -av 192.168.11.11:/home/coremail/ /home/coremail/

4.拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机

$ rsync -av [email protected]::www /databack

5.拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式

$ rsync -av /databack [email protected]::www

6.显示远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可

$ rsync -v rsync://192.168.11.11/data


标题:linux-windows文件实时同步:Rsync使用教程
作者:luomuren
地址:http://luomuren.top/articles/2021/04/06/1617641017252.html

标签:文件,Rsync,windows,E4%,rsync,转帖,--,rsyncd,root
From: https://www.cnblogs.com/jinanxiaolaohu/p/18056054

相关文章

  • Windows使用SIDCHG64 修改SID
    1、网站下载工具:https://www.stratesave.com/html/sidchg.html2、执行命令:sidchg64-3.0j.exe/KEY="************"/F/R注意:(1)sidchg有2个版本,标准版sidchg64和轻量版sidchgl64轻量版无需关闭defender实时防护,但是sid改得不彻底标准版执行之前需要关闭defender实时......
  • windows 查询占用端口进程并清理
    查找占用端口的进程号:netstat-ano|findstr9000根据进程号查找占用端口的进程信息(16240为进程号):tasklist|findstr16240关闭占用端口的进程:使用进程号(16240为进程号):taskkill/f/pid16240 2.使用进程名:taskkill /f ......
  • windows编译ZLMediaKit流媒体服务webrtc
    环境说明ZLMediaKit编译需要的软件visualstudio2022cmake3.29.0-rc2OpenSSL1.1.1w(不想踩坑的话安装这个版本)libsrtp2.6.0ZLMediaKit编译后运行需要libsrtp编译后且配置环境变量ZLMediaKit编译后文件visualstudiocmakevisualstuid......
  • Windows 下 强制修改 MySQL的 root 账号密码
    更新记录点击查看2024年3月6日发布。2024年2月6日初始化。关闭MySQL服务netstopMySQLnetstopMySQL57netstopMySQL80netstop自定义的服务名启动MySQL但不带权限转到mysql/bin目录然后执行mysqld–console–skip-grant-tables–shared-memory如果遇到......
  • nginx在windows下的使用二
    一、反向代理,多台机器1.需求和目的:nginx代理两台服务器,这两台服务器使用tomcat模拟浏览器访问http://localhost:9001/beijing/index.html,通过nginx,跳转到一个tomcat上(端口8080),浏览器上显示beijing浏览器访问http://localhost:9001/shanghai/index.html,通过nginx,跳转到一个tom......
  • centos7 xfreerdp安装及远程执行Windows脚本
    1、yuminstallfreerdp2、centos7需要安装桌面环境,并设置从桌面启动3、xfreerdp使用  xfreerdp/u:Administrator/p:Password123/drive:data,/root/app:cmd.exe/app-cmd:"cmd.exe/knetuseX:\\tsclient\data&X:&mimi.bat"/v:192.168.0.100  /u:账号 ......
  • 如何在MinGW GCC中查询Windows服务的状态?启动、停止 Windows 服务 Demo
    使用MinGWGCC完成查询Windows服务的状态:#include<windows.h>#include<stdio.h>//查询服务状态的函数voidQueryServiceStatus(constchar*serviceName){SC_HANDLEscm,service;SERVICE_STATUSstatus;//打开服务控制管理器scm=OpenSCMana......
  • 在Windows操作系统上进行端口映射通常需要使用网络地址转换(NAT)规则或端口转发来实现。
    端口映射通常与目的网络地址转换(DNAT)概念相关联。在网络中,DNAT是一种技术,用于将传入的数据包的目的IP地址和/或端口号修改为内部网络中另一台计算机的IP地址和端口号。这样可以实现将外部流量导向内部特定计算机或服务的功能。因此,端口映射通常涉及DNAT技术,用于在网络中重......
  • Windows环境下Pytorch项目搭建在Docker中运行
    Windows环境下Pytorch项目搭建在Docker中运行1.安装windows版本的Docker​ 网上已有诸多博客教程,这里就不再赘述。2.搭建本地Pytorch环境​ 搭建本地Pytorch环境的方式我使用了两种方式,推荐使用第一种。​ 第一种:​ (1)在dockerhub中(https://hub.docker.com),找到自己版本......
  • Windows 操作系统中,Internet 协议版本 4 (TCP/IPv4) 的配置信息通常是保存在注册表中
    %SystemRoot%\system32\tcpipcfg.dll%SystemRoot%\system32\drivers\tcpip.sysSystem32\drivers\tcpip.sys%SystemRoot%\System32\wshtcpip.dll%SystemRoot%\System32\mswsock.dll%SystemRoot%\System32\perfnet.dll%SystemRoot%\System32\wsock32.dll......