资讯
HOME
资讯
正文内容
linux 备份 nand Linux中rsync备份服务总括
发布时间 : 2024-10-06
作者 : 小编
访问数量 : 23
扫码分享至微信

Linux中rsync备份服务总括

rsync备份服务

rsync备份服务介绍

Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具

rsync - a fast,versatile,remote(and local)file-copying tool

来自:rsync软件官方链接地址:

http://www.samba.org/ftp/rsync/rsync.html

通过:man rsync

全量复制:是将所有备份数据都同步一遍

增量复制:只将变化的新增的数据,进行备份同步

Rsync(Remote Synchronize) 是一个远程资料同步工具,可通过LAN/WAN快速同步多台主机,Rsync使用所为的“Rsync演算法”来使本地主机和远程主机之间达到同步,这个演算法并不是每次都整份传送,它只传送两台计算机之间所备份的资料不同的部分,因此速度相当快。

利用Rsync还可以实现删除文件和目录的功能,这又相当于rm命令!

一个Rsync命令相当于scp 、cp、rm、ls、但是他优于他们每一个命令

Rsync的优点

1、可以镜像保存整个目录树和文件系统。

2、可以很容易的做到保持原来文件的许可权、时间、软链接等。

3、无须特使许可权即可安装。

4、拥有优化的流程,文件传输效率高。

5、可以使用Rsh、SSH等方式来传输文件,当然也可以直接通过Socket连接。

6、支持匿名传输。

另外,与SCP相比,传输速度不是一个层次级的。我们在局域网时经常用Rsync和SCP传输大量Mysql数据,发现Rsync至少比Scp快20倍以上,所以大家如果需要在Windows/Linux/Unix服务器之间互传海量资料,Rsync是非常好的选择。

rsync软件特性总结

1) 支持拷贝普通文件与特殊文件如链接文件,设备等。

2) 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。

#tar zcvf backup_1.tar.gz /opt/data -exclude=error

说明:在打包/opt/data时就排除了error命名的目录和文件。

3) 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变 -p。

4) 可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)。

# 将备份/home 目录自 2008-01-29 以来修改过的文件

# tar -N 2008-01-29 zcvf /backups/inc-backup_$(date +%F).tar.gz /home

# 将备份 /home 目录昨天以来修改过的文件

# tar -N $(date -d yesterday "+%F") zcvf /backups/inc-backup_$(date +%F).tar.gz /home

# 添加文件到已经打包的文件

# tar -rf all.tar *.gif

说明:这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

5) 可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)

6) 可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。重点掌握

7) 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。

Rsync守护进程模式部署

首先检查rsync是否安装

[root@backup ~]# rpm -qa|grep rsync

rsync-3.0.6-12.el6.x86_64

说明rsync已安装,如果提示出现 package rsync is not installed 则说明这个软件包没有安装

可以使用yum进行安装

# yum -y install rsync

另外,关闭防火墙和SElinux,因为是内网中传输,所以这些没必要

service iptables stop && chkconfig iptables off

setenforce 0

配置文件/etc/rsyncd.conf

这个文件是自己定义的,并不是系统创建的,当然也可以叫不同的名字,后面再写上详细注释。

uid = rsync

gid = rsync

user chroot = no

max connections = 200

timeout = 600

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

[backup]

path=/backup/

ignore errors

read only = no

list = no

hosts allow = 172.16.1.0/24

auth users = rsync_backup

hosts deny = 0.0.0.0/32

secrets file = /etc/rsyncd.password

配置文件全局配置注释:

uid = nobody

#用户 操作者

进行备份的用户,nobody 为任何用户

gid = nobody

#用户组

进行备份的组,nobody为任意组

use chroot = no

#安全相关

如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true.但是这个一般不需要,选择no或false

list = no

不允许列清单

max connections = 200

#最大连接数

timeout = 600

#超时时间 默认秒

覆盖客户指定的IP超时时间,也就是说rsync服务器不会永远等待一个崩溃的客户端。

pid file = /var/run/rsyncd.pid

#进程对应的进程号文件

pid文件的存放位置

lock file = /var/run/rsync.lock

#锁文件的存放位置

log file = /var/log/rsyncd.log

#日志文件的存放位置,显示出错信息等。

配置文件模块配置注释

[backup]

#认证模块名称,即跟samba语法一样,是对外公布的名字

path = /backup/

#备份目录 模块对应的位置(路径)

这里是参与同步的目录

ignore errors

#忽略错误程序

可以忽略一些无关的IO错误

read only = no或者false

#是否可读 =no允许可读可写

list = no或者false

#是否可以列表 =no 不允许列清单

hosts allow = 192.168.1.0/255.255.255.0

#白名单 允许哪些主机可以连接

这里跟samba的语法是一样的,只允许192.168.21.0/24的网段进行同步,拒绝其它一切

hosts deny = 0.0.0.0/32

#黑名单 不允许哪些主机可以连接

auth users = test

#认证的用户名

secrets file = /etc/rsyncd.password

#密码文件存放地址

注意项

创建/backup目录,修改目录权限,

给密码文件上一个权限 :

chmod 600 /etc/rsync.password (只有管理员能看这个密码文件)

rsync守护进程模式部署

检查部署软件服务是否存在 进行rsync软件配置

vim /etc/rsyncd.conf --- 此配置文件默认不存在,需要创建生成

/etc/rsyncd.conf 是随机创建,可以自定义

创建rsync备份目录管理用户

[root@backup mail]# useradd -s /sbin/nologin -M keke

[root@backup ~]# id keke

uid=1000(keke) gid=1000(keke) groups=1000(keke)

创建rsync服务端备份数据目录

[root@backup ~]# mkdir -p /backup

[root@backup ~]# chown -R keke.keke /backup/

[root@backup ~]# ll -d /backup/

drwxr-xr-x 2 keke keke 4096 Jul 20 15:02 /backup/

创建用户认证文件

[root@backup ~]# echo 'keke_backup:keke811888' >/etc/rsync.passwd

[root@backup ~]# chmod 600 /etc/rsync.passwd

[root@backup ~]# cat /etc/rsync.passwd

rsync_keke:keke811888

[root@backup ~]# ll /etc/rsync.passwd

-rw------- 1 root root 22 Jul 20 16:54 /etc/rsync.passwd

启动rsync服务,启动守护进程

[root@backup ~]# rsync --daemon

[root@backup ~]# ps -ef|grep rsync

root 2357 1 0 16:56 ? 00:00:00 rsync --daemon

root 2359 2270 0 16:57 pts/0 00:00:00 grep --color=auto rsync

[root@backup ~]#

[root@backup ~]# netstat -lntup|grep rsync

tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2357/rsync

tcp 0 0 :::873 :::* LISTEN 2357/rsync

客户端测试过程

这里随便创建1台其他的测试虚拟服务器机测试。要确定测试机上已经下载了rsync

测试之前确保备份服务器的/backup目录下文件为0

test服务器测试,推送成功后如箭头所示

查看备份服务器里面的/backup 目录里面是否推送成功

如图代表已经推送成功

过来后,所有文件也都是keke的用户文件

启动配置 xinetd超级进程启动

在备份服务器上面配置启动xinetd

rsync服务端启动的两种方法

1、启动rsync服务端(独立启动)

[root@test home]# /usr/bin/rsync --daemon on 或rsync --daemon

2、启动rsync服务端 (有xinetd超级进程启动)

[root@test home]# /etc/init.d/xinetd reload (平滑启动,不影响用户体验)

3、配置rsync自动启动

[root@test etc]# chkconfig rsync on

[root@test etc]# chkconfig rsync --list

rsync on

4、加入rc.local

在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。

[root@test home]# vi /etc/rc.local

/usr/local/rsync –daemon #加入一行

chkconfig rsync --list (rsync查看自启动的命令)

客户端配置

客户端

创建密码认证文件,这里只写上密码就行

在备份服务器查看test目录下共4个文件,backup(模块)目录下无文件

测试加 --delete 效果

在test服务器下查看test目录只有1个etc.tar.gz(压缩包)文件

执行

推送成功

backup下只有一个文件

--delete:删除那些目标服务器中存在而源服务器地址中不存在的文件或目录

本次测试不是很明显,反过来。大概就明白 --delete参数的意思(我没有的,这个模块里面也不能有,我有的,你也不能把我删除)

备份服务器利用scp命令推送test目录四个文件到test服务器的/test目录下

删除备份服务器其中2文件,删除/backup(模块)下所有文件为空

查看test服务器下scp已经推送4个文件成功。执行--delete /test 命令

查看备份服务器里面4个文件推送成功。

Rsync练习

从本地上传到服务器上面

已创建密码认证文件无需输入密码

服务器端推送成功

从服务器上下载文件

先看/backup(模块)里面有什么

然后你下载到指定的/tmp里面就是什么

常用参数:rsync -av

下载:rsync [参数] 远程文件(远程路径) 本地目录

上传:rsync [参数] 本地文件 远程目录

rsync常用参数

如果不需要交互式的操作,rsync平时也可以像scp那样工作,下列为常用rsync参数。

Ø -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

Ø -v --verbose:详细模式输出

Ø -r --recursive:对子目录以返回模式处理。

Ø -p --perms:保持文件许可权

Ø -o --owner:保持文件属主信息

Ø -g --group:保持文件组信息

Ø -t --times:保持文件时间信息

Ø --delete:删除那些DST中存在而SRC中不存在的文件或目录

Ø --delete-excluded:同样删除接收端哪些该选项制定排出的文件

Ø -z --compress:对备份的文件在传输时进行压缩处理

Ø --exclude=PATTERN:制定排除不需要传输的文件

Ø --include=PATTERN:制定不排除需要传输的文件

Ø --exclude-from=FILE:排除FILE中制定模式的文件

Ø --include-from=FILE:不排除FILE中制定模式匹配的文件

rsync软件实现增量复制原理

在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或者目录,当然也可根据目录,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里面有变化的内容部分,所以,可以实现快速的同步备份数据。

提示信息:传统的cp scp 工具拷贝每次均为完整的拷贝,而rsync除了可以完整的拷贝,还具备增量拷贝的功能。

因此,从同步数据的性能及效率上,Rsync工具更胜一筹。

centos 5,rsync2.X比对方法,把所有的文件对比一边,然后进行同步

centos 6,rsync3.X比对方法,一边比对差异,一边对差异的部分进行同步。

rsync工作原理图

增量传输就是无就传输,有就不传输,只传输没有的数据内容进行备份

rsync其他的功能还有特别多,这里不一一列举了,想要研究的可以自行查阅资料,谢谢大家的支持。

请自行学习:rsync 的类 cp scp rm ls 的命令 (--delete 增量列表进行删除)

有疑问的欢迎大家列举,多多指教,谢谢大家。

相关问答

GHOST能于 LINUX 系统 备份 吗? - 菠萝菠萝 的回答 - 懂得

不能ghost是基于Windows的用GHOST对LINUX系统做备份1:要求将安装了LINUX系统的硬盘(原盘)整盘刻至另一硬盘(目标盘)。2:所需工具:DOS系统引导盘,G...

Linux 系统 备份 恢复?

用GHOST对LINUX系统做备份1:要求将安装了LINUX系统的硬盘(原盘)整盘刻至另一硬盘(目标盘)。2:所需工具:DOS系统引导盘,GHOST2003(版本低的对文件格式不...用...

linux 服务器如何对数据盘进行 备份 ?

在Linux服务器上,可以使用以下方法对数据盘进行备份:1.使用命令行工具:使用诸如`rsync`、`cp`、`tar`等命令行工具可以将数据盘上的文件备份到其他位置或设...

linux 中的 备份

[最佳回答]cpio可以从cpio或tar格式的归档包中存入和读取文件,归档包是一种包含其他文件和有关信息的文件。有关信息包括:文件名,属主,时标(timestam...

linux 不清除数据位置,可以 备份 整个数据盘吗?

是的,Linux系统可以备份整个数据盘,但在备份前需要注意清除不必要的文件以节约备份时间和空间,同时选择合适的备份工具和备份策略,确保备份的可靠性和数据完...

linux 系统用什么工具 备份 系统?

Linux最常用的备份工具是tar,它是tapearchive的缩写,表示磁带备份。现在当然不一定备份在磁带上,也可以是以文件形式备份,分卷、压缩都可以。另外,常用的...

Linux 系统中如何克隆系统 - 133****4046 的回答 - 懂得

在一个大的linux应用环境中,经常为了避免再次安装,需要简单地复制另一台已经在运行工作的linux服务器而后稍微做些改动即可。相比起windows来说,lin...

linux 系统做 备份 时太大怎么办?

linux系统做备份时太大可以将一些临时目录下的无用文件删除,以及一些无用日志文件删除。linux系统做备份时太大可以将一些临时目录下的无用文件删除,以及一些...

如何把当前的centos系统完全 备份 并且恢复?

首先你要确定这个分区上有没有你的重要文件(如果分区之前你已备份,请忽略);我看你在win10中查看的。win10推荐的文件系统是NTFS,CentOS等Linux分发版默认...

UbuntuLinux系统 备份 用Ghost还是tar?

可以用ghost备份linux,只是ghost不能在linux环境下运行,建议使用光盘版ghost来备份,注意,如果你的linux系统占用了整个硬盘,就要把linux备份到usb硬盘或u盘...

 苏打绿青峰  江源道 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部