Linux远程自动备份、同步数据(rsync)

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

一、安装数据备份工具rsync

  • rsync不仅可以远程同步数据(类似于scp),还可以本地同步数据(类似于cp),但不同于cp或scp的一点是,rsync不像cp/scp一样会覆盖以前的数据(如果数据已经存在),它会先判断已经存在的数据和新数据有什么不同,只有不同时才会把不同的部分覆盖掉。

1、查询是否安装rsync,如果未安装,则运行命令安装rsync服务。

rpm -qa  |grep  rsync
yum remove   -y  rsync
yum install -y  rsync

2、编辑/etc/selinux/config,关闭selinux。

vi  /etc/selinux/config

SELINUX=disabled

getenforce

3、查看iptables相关规则,设置iptables,插入一条规则,保存至/etc/sysconfig/iptables文件,重启iptables防火墙。

iptables  -L
iptables -I INPUT -p tcp  --dport 873 -j ACCEPT
service iptables save
service iptables restart

4、安装超级守护进程xinetd,设置开机启动。

yum install xinetd -y

5、编辑/etc/xinetd.d/rsync文件将"disable = yes" 修改为 “disable = no”,使rsync服务随xinetd启动而启动。

vi   /etc/xinetd.d/rsync

sed -i 's#yes#no#g' /etc/xinetd.d/rsync

6、启动xinetd服务。

service  xinetd  start

7、查看rsync服务是否启动,启动成功可监听到873端口。

netstat  -lnp  |grep  873

二、rsync命令和参数说明

rsync的命令格式说明
rsync [OPTION] SRC DEST本地目录同步,不加’[user@]host’ 默认指的是root 。
rsync [OPTION] SRC [USER@]HOST:DEST从本地目录同步数据到远程目录。(以ssh方式登录远程主机,可用密码也可用密钥)。
rsync [OPTION] [USER@]HOST:SRC DEST从远程目录同步数据到本地目录。(以ssh方式登录远程主机,可用密码也可用密钥)。
rsync [OPTION] [USER@]HOST::SRC DEST从远程目录同步数据到本地目录,’::'表示验证方式不同(通过rsync daemon方式登录)。
rsync [OPTION] SRC [USER@]HOST::DEST从本地目录同步数据到远程目录,’::'表示验证方式不同(通过rsync daemon方式登录)。
rsync常用选项说明
-a归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD ,-a选项后面可以跟一个 --no-OPTION, 这个表示关闭-rlptgoD中的某一个例如 -a --no-l 等同于-rptgoD。
-r对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项。
-v打印一些信息出来,比如速率,文件数量等。
-l保留软链结。
-L向对待常规文件一样处理软链结,如果是SRC中有软连接文件,则加上该选项后将会把软连接指向的目标文件拷贝到DEST。
-p保持文件权限。
-o保持文件属主信息。
-g保持文件属组信息。
-D保持设备文件信息。
-t保持文件时间信息。
–delete删除DST中SRC没有的文件。
–exclude=PATTERN指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)。
–progress同步的过程中显示同步过程的状态,如统计同步的文件数量、同步文件传输的速度。
-u把DST中比SRC还新的文件排除掉,不会覆盖。
常用命令示例说明
rsync -a dict1/ dict2/将dict1目录内容复制到dict2目录,目录名后面一定要加斜杠,’-a’选项等同于’-rlptgoD’。
rsync -av --no-l dict1/ dict2/将dict1目录内容复制到dict2目录,不复制软连接文件,’-l’表示只复制软连接文件,但软连接文件指向的目标文件却不会复制。
rsync -avL dict1/ dict2/将dict1目录内容复制到dict2目录,复制SRC中软连接文件所指向的目标文件到DEST目录。
rsync -av --delete dict1/ dict2/将dict1目录内容复制到dict2目录,并将DEST中有而SRC中没有的文件删除。
rsync -av --exclude="*.txt" dict1/ dict2/将dict1目录内容(除了"*.txt"文件)复制到dict2目录。
rsync -avL dict1/ root@192.168.1.80:/root/dict2/将dict1目录内容复制到以root账号登陆的192.168.1.80远程主机的/root/dict2/目录。
rsync -avL root@192.168.1.80:/root/VMwareTools.tar.gz Users/xue/Desktop/以root账号登陆的192.168.1.80远程主机并把/root/目录下的VMwareTools.tar.gz文件复制到本地桌面。

三、使用ssh方式设置免密远程登录和备份

  • A计算机同B计算机免密登录备份设置思路:A计算机root用户登陆,使用命令’ssh-keygen -t rsa '生成密钥对,则将A计算机的公钥放入B计算机的authorized_keys文件中,A计算机以后就可以免密登录备份B计算机。B计算机免密登录备份A计算机具体思路同上。

1、A计算机root用户登陆生成密钥对(用rsa加密算法生成密钥对,也可用dsa加密算法)。

ssh-keygen -t rsa

2、一路回车(不设置密钥对存放路径和私钥密码,默认即可)。

3、查看A计算机生成密钥对。

cd /root/.ssh
ls

4、将A计算机公钥追加到文件authorized_keys里,更改文件权限。

cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

5、将A计算机文件authorized_keys复制到远程主机B计算机/root/.ssh目录里。

scp authorized_keys root@192.168.1.80:/root/.ssh

rsync 	-avL    authorized_keys	  root@192.168.1.80:/root/.ssh

6、A计算机再次登陆B计算机,无需输密码即可远程进入系统,备份文件也无需输入密码。

ssh root@192.168.1.80
rsync -avL   test@192.168.1.120::test/     /tmp/test

四、以后台服务的方式实现远程备份

  • 设置思路:A计算机设置为远程rsync服务器,B计算机作为客户端连接A远程rsync服务器。

  • 设置远程服务器,启动rsync服务(IP:192.168.1.120)

1、编辑/etc/rsyncd.conf配置文件如下图,设置远程rsync服务器,创建备份数据文件夹/root/test,创建测试数据 /root/test/1.txt。

vi  /etc/rsyncd.conf
mkdir /root/test
touch /root/test/1.txt
echo  "rsync  server  test "  > /root/test/1.txt
cat  /root/test/1.txt

在这里插入图片描述

2、上图的 port,log file,pid file,address都属于全局配置。[]内的test是模块名,属于模块配置。一个配置文件可以有多个不同模块。

配置参数说明
port指定哪个端口启动rsync服务,默认为873。
log file指定日志文件,rsyncd服务启动后系统创建。
pid file指定pid文件,rsyncd服务启动后系统创建。这个服务的作用涉及服务的启动停止等进程操作。
address指定启动rsync服务的IP,假如你的主机有多个ip,不指定ip的话就默认在全部ip上启动。
[ ]指定模块名。
path指定远程rsync服务器传送数据存放的路径。
use chroot=true默认值是true,但是如果你的文件中有软链接,建设设置为false。设置为true的优点是提高了安全性,但是缺点是需要root权限,并且不能备份指向外部的软链接
max connections=4指定最大的连接数,默认是0即无限制。这里的连接数指的是允许多少台主机同时连接服务器。
read only=false如果为true,则不能上传的该模块指定的路径下。
list=false表示当用户查询该服务器上的可用模块时,模块是否被列出。设定为true则列出,会有一定的危险性,所以设为false则隐藏,更安全。
uid gid指定在传输时以哪个用户和用户组的身份传输。
auth users指定传输时需要使用的用户名。
secrets file指定密码文件,该参数连同上面的auth users如果不指定,则不使用密码验证。该文件的权限一定要是600。
host allow表示被允许连接该模块的主机,可以是ip或者网段,如果是多个,中间用空格隔开。

3、配置secrets file参数项,编辑/etc/rsyncd.passwd文件,输入内容test:test123,保存后设置权限为600。

 vi   /etc/rsyncd.passwd
 chmod   600   /etc/rsyncd.passwd

4、启动rsyncd服务。

service  xinetd  start

rsync  --daemon  --config=/etc/rsyncd.conf

5、查看服务是否启动,启动成功可监听到873端口。

netstat  -lnp  |grep  873

在这里插入图片描述

  • rsync客户端测试一密码验证通过后备份数据

1、运行如下命令,输入密码"test123",备份远程服务器数据,测试过程如下。

rsync -avL   test@192.168.1.120::test/     /tmp/test

在这里插入图片描述

  • rsync客户端测试二无需输入密码即可备份数据

无需输入密码备份方法一

1、rsync客户端编辑一个密码文件/etc/passsecret,加入test密码“test23”,保存文件修改权限600。

vi   /etc/passsecret
chmod   600    /etc/passsecret

2、输入如下命令即可备份数据,备份过程如下图。

rsync -avL   test@192.168.1.120::test/     /tmp/test/   --password-file=/etc/passsecret

在这里插入图片描述
无需输入密码备份方法二
1、在rsync服务端,注释配置文件中auth users和secrets file这两项参数即可,配置立即生效,无需重启rsync服务,此时默认以root账户身份备份。

vi  /etc/rsyncd.conf

2、输入如下命令即可备份数据,备份过程如下图。

 rsync -avL   192.168.1.120::test/     /tmp/test/

在这里插入图片描述

五、使用计划任务定时自动同步远程数据

1、如果需要客户端上的数据与服务器端完全一致,加入 “–delete” 选项即可。

rsync -avL  --delete  test@192.168.1.120::test/     /tmp/test/   --password-file=/etc/passsecret

2、客户端创建备份数据命令脚本文件,添加内容如下图。

vi   /root/update-bak.sh

#!/bin/bash
#bakup
rsync -avL --delete test@192.168.1.120::test/ /tmp/test/ --password-file=/etc/passsecret

在这里插入图片描述
3、安装crond服务。

yum install -y crontabs

4、启动crond服务。

service	crond start	

5、查看crond服务状态。

service crond status	

6、通过设定crontab,加入内容"*/1 * * * * /root/update-bak.sh",让 /root/update-bak.sh这个脚本每 1 分钟运行一次。

crontab -e

*/1 * * * * /root/update-bak.sh

7、配置完成后,重启crond 服务。

service  crond   restart

8、远程自动同步测试步骤如下图。
在这里插入图片描述

Linux高级管理——rsync远程同步 当要监控的目录.文件数量较多或者变化较频繁时,建议加大这三个参数的值.例如,可直接修改/etc/sysctl ,conf配置文件.将管理队列设为32768,实例数设为1024.监控数设为1048576,通常情况下.监控数所设的值建议大于监控目标的总文件数。rsync (Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份.保持链接和权限,且采用优化的同步算法.传输前执行压缩,因此非常适用于异地备份.镜像服务器等应用. 阅读详情

相关推荐

【基于CentOS 7的Rsync服务】

log file 指定 rsync 守护进程的日志文件,而不将日志发送给 syslog。address 独立运行时,用于指定服务器运行的 IP 地址,默认本地所有IP。port 指定 rsync 守护进程监听的端口号,默认 873。path 指定当前模块的同步路径,该参数是必须指定的。

很神秘的博客 2382

rsync命令——利用rsync命令拷贝文件软连接

rsync 中,软链接是文件系统中的一种特殊类型的文件,它包含指向另一个文件或目录的路径。默认情况下,`rsync` 不会递归地传输软链接指向的文件内容,而是传输软链接本身。但是,通过使用 `-L` 或 `--copy-links` 选项,`rsync` 将会复制软链接所指向的文件,而非软链接本身。

FangsTun的博客 3641

【麒麟系统】Rsync文件复制与同步工具

本文摘要: Rsync是一款Linux/Unix系统标配的高效文件同步工具,支持增量传输、SSH加密、断点续传等核心功能,相比SCP具有显著优势。文章详细解析了Rsync的五种标准语法格式和常用参数组合,重点介绍了本地同步远程SSH同步(推送/拉取)的实操方法,并提供了密钥免密登录配置方案。针对企业运维场景,还讲解了文件过滤、镜像同步(--delete)、迁移同步(--remove-source-files)、空运行预校验(--dry-run)等高级功能,以及带宽限速等优化技巧,帮助用户安全高效地完成各类

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 939

rsync命令_Linux第7课:rsync的5类17般武艺做好备份,不再作事后诸葛亮

常常备份是良好的习惯,只是这么好习惯只有在无数次的顿足捶胸、呼天抢地的懊恼之后,才会勉勉强强慢慢地养成。备份最常用的命令是:rsync -avl source destination此处的短选项 a 是长选项--archive 的简写形式。然而,如果我们要系统搬家的时候备份所有的资料,谨慎用 -a 选项。如果在新系统上换了新的用户名,会导致你打不开用 -a 选型备份的所有资料。为什么呢?1)便捷却...

weixin_39624097的博客 260

Linux基础(day37)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34185320的博客 216

Linux下的rsync远程增量备份详解

Linux下的rsync远程增量备份详解

jks212454的博客 1480

rsync 自动同步数据Linux远程,使用Rsync进行本地和远程数据同步备份

Rsync是一个非常有用的工具,它允许Linux系统管理员在本地或与远程文件系统同步数据。使用rsync比简单地复制数据更方便,因为它能够主动发现和同步源和目标之间的差异。该程序具有:保留标准和扩展文件系统权限、在传输过程中压缩数据等选项。我们将在本指南中看到最常用的一些功能。在本教程中,您将学习到:如何使用rsync同步数据如何通过ssh在远程文件系统上使用rsync如何通过rsync守护进程将...

weixin_42168902的博客 261

linux系统下数据同步服务RSYNC

linux系统下数据同步服务RSYNC:本地文件同步远程文件同步rsync作为系统服务、rsync集合inotify工具实现代码实时同步

qq_74793290的博客 1318

Rsync多种传输方式实现远程同步,增量备份全流程讲解及示例

rsync远程同步工具详解 rsync是一款高效的远程同步工具,支持增量备份和多种传输方式。文章详细介绍了rsync的特性、工作方式及配置方法: rsync特性:支持特殊文件同步、增量备份、权限保持、多种传输协议等 配置源服务器:需创建配置文件rsyncd.conf、独立账号文件,并启动daemon模式 同步操作:提供上行/下行同步命令,支持免交互处理和计划任务 实时同步:结合inotify-tools监控文件变化,触发rsync实现实时同步 文章还包含CentOS环境下的具体配置示例和操作命令,适用于文件

希望个人学习及经验总结,能帮您解决学习中工作中所遇到的问题. 748

rsync实现远程同步

rsynclinux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。已支持跨平台,可以在Windows与Linux间进行数据同步。以上内容来自于百度百科,本文记录的是Linux之间的同步Linux与Windows系统之间的同步稍后研究。

weixin_44612246的博客 590

rsync和inotify远程同步

rsync和inotify远程同步 文章目录rsync和inotify远程同步1.什么是rsync和inotify2.inotify产生背景和详细介绍3.rsync特性4.操作流程5.参数详解6.rsync服务搭建7.rsync源的免密交互处理8.rsync实时同步 1.什么是rsync和inotify rsynclinux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可...

double_happy111的博客 383

每天一个linux命令:拷贝命令家族(cp、scp、rsync) --- rsync

每天一个linux命令:拷贝命令家族(cp、scp、rsync) — rsync 1. rsync功能 rsync — remote sync,rsyncLinux系统下的文件同步数据传输工具,可以将一个客户机和远程文件服务器之间的文件同步,也可以在本地系统中将数据从一个分区备份到另一个分区上。如果rsync备份过程中出现了数据传输中断,恢复后可以继续传输不一致的部分。rsync可以执行

池上好风---码农改变世界 5274

使用 rsync + crontab 实现自动备份全教程

本教程介绍如何使用 rsync 和 crontab 实现自动数据备份rsync 是一款高效的文件同步工具,支持增量备份;crontab 是 Linux 的定时任务工具。教程包含备份脚本配置(需修改源目录、目标目录和日志路径3个参数)、测试方法、crontab定时任务设置(含常用时间示例)以及注意事项(权限问题、--delete参数慎用等)。通过两者结合,可实现无人值守的定时增量备份方案,适合个人文件服务器数据备份需求。

xialitongxue的博客 743

rsync+inotify远程同步

rsync概述 rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据备份迁移特性。 rsync软件适用于unix/linux/windows等多种操作系统平台。 rsync是一个快速和非常方便的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制,它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制。 以其delta-transfer算法闻名。 rsync监听端口:.

qq_48107890的博客 118

Linux学习-58-备份数据命令(tar、rsync命令)

Linux学习-58-备份数据命令(tar、rsync命令)

时光 2270

RSYNC实现数据同步 (运维笔记)

线上MIS系统部分代码备份到另一台主机上线上MIS系统服务器的代码存放目录为/app/code_project备份机器要求每天12:00定时同步MIS服务器的/app/code_project目录下所有文件要求同步日志,方便同步失败分析原因备份的本质就是复制rsync可以实现增量拷贝(只拷贝改变过的数据

一条漂流鱼 1135

linux定时执行本地和rsync远程备份数据库脚本(7天覆盖)

一、前期准备: a.安装rsync yum install rsync -y b.ssh免密登录 1.生成秘钥:ssh-keygen -t rsa 生成后可以进入目录cd ~/.ssh/ 查看 2.把生成的密钥~/.ssh/id_rsa.pub内容复制到远程主机的/root/.ssh/authorized_keys中 二、在/opt/目录下创建执行脚本 chmod 700 exesql...

爱奇途 933

UnixLinux 自动化管理 数据备份同步

数据是 Unix/Linux 系统中最重要的组成部分 , 但是数据备份同步却是最容易被忽略的任务。通过定期的数据备份同步,可以在磁盘出现故障时,最大程度的降低数据损失。当用户误操作导致数据损坏或者丢失时,可以快速恢复。数据...

congtutang8051的博客 301
上一篇: Linux任务计划详解(crontab、at)
下一篇: Linux简化任务步骤(xargs、exec)
逍遥X
博客等级 码龄17年 164粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值