centos增量备份?什么是增量备份

大家好,关于centos增量备份很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于什么是增量备份的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

详解rsync,一款卓越的增量同步工具(一)

Rsync(remote rsync)是可以实现增量备份的远程(和本地)文件复制工具,目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式),也可以实现本地不同路径下(不同目录、分区之间)文件的同步,但不能实现远程路径1到远程路径2之间的同步(scp可以实现)。配合计划任务,rsync能实现定时或周期同步;配合inotify或sersync,可以实现触发式的实时同步。

本篇文章主要介绍rsync的使用方法和它常用的功能。

rsync官方网站:

不考虑rsync的实现细节,就文件同步而言,涉及了源文件和目标文件的概念,还涉及了以哪边文件为同步基准。例如,想让目标主机上的文件和本地文件保持同步,则是以本地文件为同步基准,将本地文件作为源文件推送到目标主机上。反之,如果想让本地主机上的文件和目标主机上的文件保持同步,则目标主机上的文件为同步基准,实现方式是将目标主机上的文件作为源文件拉取到本地。当然,要保持本地的两个文件相互同步,rsync也一样能实现,这就像Linux中cp命令一样,以本地某文件作为源,另一文件作为目标文件,但请注意,虽然rsync和cp能达到相同的目的,但它们的实现方式是不一样的。

既然是文件同步,在同步过程中必然会涉及到源和目标两文件之间版本控制的问题,例如是否要删除源主机上没有但目标上多出来的文件,目标文件比源文件更新(newer than source)时是否仍要保持同步,遇到软链接时是拷贝软链接本身还是拷贝软链接所指向的文件,目标文件已存在时是否要先对其做个备份等等。

rsync同步过程中由两部分模式组成:决定哪些文件需要同步的检查模式以及文件同步时的同步模式。

(1).检查模式是指按照指定规则来检查哪些文件需要被同步,例如哪些文件是明确被排除不传输的。默认情况下,rsync使用"quick check"算法快速检查源文件和目标文件的大小、mtime(修改时间)是否一致,如果不一致则需要传输。当然,也可以通过在rsync命令行中指定某些选项来改变quick check的检查模式,比如"--size-only"选项表示"quick check"将仅检查文件大小不同的文件作为待传输文件。rsync支持非常多的选项,其中检查模式的自定义性是非常有弹性的。

(2).同步模式是指在文件确定要被同步后,在同步过程发生之前要做哪些额外工作。例如上文所说的是否要先删除源主机上没有但目标主机上有的文件,是否要先备份已存在的目标文件,是否要追踪链接文件等额外操作。rsync也提供非常多的选项使得同步模式变得更具弹性。

相对来说,为rsync手动指定同步模式的选项更常见一些,只有在有特殊需求时才指定检查模式,因为大多数检查模式选项都可能会影响rsync的性能。

以下是rsync的语法:

由此语法可知,rsync有三种工作方式:

(1).本地文件系统上实现同步。命令行语法格式为上述"Local"段的格式。

(2).本地主机使用远程shell和远程主机通信。命令行语法格式为上述"Access via remote shell"段的格式。

(3).本地主机通过网络套接字连接远程主机上的rsync daemon。命令行语法格式为上述"Access via rsync daemon"段的格式。

前两者的本质是通过管道通信,即使是远程shell。而方式(3)则是让远程主机上运行rsync服务,使其监听在一个端口上,等待客户端的连接。

但是,还有第四种工作方式:

(4).通过远程shell也能临时启动一个rsync daemon,这不同于方式(3),它不要求远程主机上事先启动rsync服务,而是临时派生出rsync daemon,它是单用途的一次性daemon,仅用于临时读取daemon的配置文件,当此次rsync同步完成,远程shell启动的rsync daemon进程也会自动消逝。此通信方式的命令行语法格式同"Access via rsync daemon",但要求options部分必须明确指定"--rsh"选项或其短选项"-e"。

如需源码安装,请关注即将发布的《详解Rsync,一款卓越的增量同步工具(二)》

系统环境:

服务器配置:阿里云ECS 11G

操作系统:CentOS7.2

rsync版本:3.1.2

rsync服务器:rsync-server(10.168.152.72)

rsync客户端:rsync-client(10.117.217.172)

检查rsync是否已经安装

若已安装,无需重新安装;若未安装,用以下命令安装:

写入以下配置到该文件:

输入,格式是“用户名:口令”,用户不要求是系统用户

root:pwd123456

输入:

======welcome to synchronize appdata======

如果rsync启动成功,可以看到873端口已经在监听了。

检查rsync是否已经安装

若已安装,无需重新安装;若未安装,用以下命令安装:

更多同步数据的场景演示,请关注即将发布的《详解Rsync,一款卓越的增量同步工具(二)》

配置文件 rsyncd.conf由全局配置和若干模块配置组成。配置文件的语法为:

全局参数

在文件中 [module]之外的所有配置行都是全局参数。当然也可以在全局参数部分定义模块参数,这时该参数的值就是所有模块的默认值。

模块参数

模块参数主要用于定义 rsync服务器哪个目录要被同步。模块声明的格式必须为 [module]形式,这个名字就是在 rsync客户端看到的名字,类似于 Samba服务器提供的共享名。而服务器真正同步的数据是通过 path来指定的。可以根据自己的需要,来指定多个模块,模块中可以定义以下参数:

a.基本模块参数

b.模块控制参数

c.模块文件筛选参数

d.模块用户认证参数

e.模块访问控制参数

客户主机列表定义可以是以下形式:

f.模块日志参数

设置了”log file”参数时,在日志每行的开始会添加”%t [%p]“。

可以使用的日志格式定义符如下所示:

Centos 7.8 日常备份Oracle 19.3指南:详细分享(三)

采用RMAN方式备份Oracle数据库是常用且高效的方法。RMAN作为Oracle的备份还原与恢复工具,通过命令行界面操作,与EXP/EXPDP工具相比,它进行的是物理备份,而非逻辑备份。

具体操作步骤如下:

首先,确定备份路径。这里推荐将备份数据存放在专用的备份服务器上。通过挂载方式,使CentOS服务器能够访问该存储位置。

接着,配置备份脚本。编写脚本以执行RMAN备份操作。全量备份是指备份所有数据库中的schema,并自动删除最近7天内的备份,确保数据的更新性。增量备份则针对上一次备份后的时间点,只备份新增或修改的数据,效率更高。

创建shell脚本用于定时执行RMAN备份脚本,如`level0_backup.sh`和`level1_backup.sh`,实现自动化备份流程。同时,配置crontab,以实现定时任务,如每周执行一次全量备份,并根据需求清理归档日志,以保持存储空间的健康状态。

参考资源包括备份定义、说明以及RMAN详细教程,这些教程提供深入理解RMAN备份流程、维护策略和恢复机制的指导,有助于提升数据库管理的效率和安全性。

rsync服务器架设(数据同步|文件增量备份)

为了实现多个服务器负载均衡,我们需要这几个服务器之间进行数据同步,而rsync软件也能胜任,下面我们来介绍如何架设rsync服务器来达到文件增量备份和数据同步的功能。

什么是rsync

rsync是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用。本文主要讲述的是如何自架rsync服务器,以实现文件传输、备份和镜像。相对tar和wget来说,rsync也有其自身的优点,比如速度快、安全、高效。

rsync的安装

在CentOS服务器,我们可以执行以下命令安装

yum install rsync

对于debian、ubuntu服务器,则是以下命令

sudo apt-get install rsync

rsync服务器的配置文件rsyncd.conf

下面我们将涉及到三个文件 rsyncd.conf,rsyncd.secrets和rsyncd.motd。

rsyncd.conf是rsync服务器主要配置文件。

rsyncd.secrets是登录rsync服务器的密码文件。

rsyncd.motd是定义rysnc服务器信息的,也就是用户登录信息。

下面我们分别建立这三个文件。

mkdir/etc/rsyncd

注:在/etc目录下创建一个rsyncd的目录,我们用来存放rsyncd.conf和rsyncd.secrets文件;

touch/etc/rsyncd/rsyncd.conf

注:创建rsyncd.conf,这是rsync服务器的配置文件;

touch/etc/rsyncd/rsyncd.secrets

注:创建rsyncd.secrets,这是用户密码文件;

chmod 600/etc/rsyncd/rsyncd.secrets

注:为了密码的安全性,我们把权限设为600;

touch/etc/rsyncd/rsyncd.motd

注:创建rsyncd.motd文件,这是定义服务器信息的文件。

下一就是我们修改 rsyncd.conf和rsyncd.secrets和rsyncd.motd文件的时候了。

rsyncd.conf文件内容:

复制代码

代码如下:

# Minimal configuration file for rsync daemon

# See rsync(1) and rsyncd.conf(5) man pages for help

# This line is required by the/etc/init.d/rsyncd script

pid file=/var/run/rsyncd.pid

port= 873

address= 192.168.1.171

#uid= nobody

#gid= nobody

uid= root

gid= root

use chroot= yes

read only= yes

#limit access to private LANs

hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0

hosts deny=*

max connections= 5

motd file=/etc/rsyncd/rsyncd.motd

#This will give you a separate log file

#log file=/var/log/rsync.log

#This will log every file transferred- up to 85,000+ per user, per sync

#transfer logging= yes

log format=%t%a%m%f%b

syslog facility= local3

timeout= 300

[linuxsirhome]

path=/home

list=yes

ignore errors

auth users= linuxsir

secrets file=/etc/rsyncd/rsyncd.secrets

comment= linuxsir home

exclude= beinan/ samba/

[beinan]

path=/opt

list=no

ignore errors

comment= optdir

auth users= beinan

secrets file=/etc/rsyncd/rsyncd.secrets

密码文件:/etc/rsyncd/rsyncd.secrets的内容格式;

用户名:密码

linuxsir:222222

beinan:333333

注:这里的密码值得注意,为了安全,你不能把系统用户的密码写在这里。比如你的系统用户 linuxsir密码是 abcdefg,为了安全,你可以让rsync中的linuxsir为 222222。这和samba的用户认证的密码原理是差不多的;

rsyncd.motd文件;

它是定义rysnc服务器信息的,也就是用户登录信息。比如让用户知道这个服务器是谁提供的等;类似ftp服务器登录时,我们所看到的 ftp……。当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除;我在这里写了一个 rsyncd.motd的内容为:

+++++++++++++++++++++++++++

+ rsync 2002-2007+

+++++++++++++++++++++++++++

rsyncd.conf文件代码说明

pid file=/var/run/rsyncd.pid

注:告诉进程写到/var/run/rsyncd.pid文件中;

port= 873

注:指定运行端口,默认是873,您可以自己指定;

address= 192.168.1.171

注:指定服务器IP地址;

uid= nobody

gid= nobdoy

注:服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody。如果用nobody用户和用户组,可能遇到权限问题,有些文件从服务器上拉不下来。所以我就偷懒,为了方便,用了root。不过您可以在定义要同步的目录时定义的模块中指定用户来解决权限的问题。

use chroot= yes

用chroot,在传输文件之前,服务器守护程序在将chroot到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限。另外对符号链接文件,将会排除在外。也就是说,你在rsync服务器上,如果有符号链接,你在备份服务器上运行客户端的同步数据时,只会把符号链接名同步下来,并不会同步符号链接的内容;这个需要自己来尝试;

read only= yes

注:read only是只读选择,也就是说,不让客户端上传文件到服务器上。还有一个 write only选项,自己尝试是做什么用的吧;

#limit access to private LANs

hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0

注:在您可以指定单个IP,也可以指定整个网段,能提高安全性。格式是ip与ip之间、ip和网段之间、网段和网段之间要用空格隔开;

max connections= 5

注:客户端最多连接数;

motd file=/etc/rsyncd/rsyncd.motd

注:motd file是定义服务器信息的,要自己写 rsyncd.motd文件内容。当用户登录时会看到这个信息。

log file=/var/log/rsync.log

注:rsync服务器的日志;

transfer logging= yes

注:这是传输文件的日志;

[linuxsirhome]

注:模块,它为我们提供了一个链接的名字,链接到哪呢,在本模块中,链接到了/home目录;要用[name]形式;

path=/home

注:指定文件目录所在位置,这是必须指定的;

auth users= linuxsir

注:认证用户是linuxsir,是必须在服务器上存在的用户;

list=yes

注:list意思是把rsync服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes。如果你不想列出来,就no;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了;

ignore errors

注:忽略IO错误,详细的请查文档;

secrets file=/etc/rsyncd/rsyncd.secrets

注:密码存在哪个文件;

comment= linuxsir home data

注:注释可以自己定义,写什么都行,写点相关的内容就行;

exclude= beinan/ samba/

注:exclude是排除的意思,也就是说,要把/home目录下的beinan和samba排除在外; beinan/和samba/目录之间有空格分开;

启动rsync服务器及防火墙的设置

启动rsync服务器

启动rsync服务器相当简单,–daemon是让rsync以服务器模式运行;

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

rsync服务器和防火墙

Linux防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync服务器端口通过,客户端上也应该让通过。

iptables-A INPUT-p tcp-m state--state NEW-m tcp--dport 873-j ACCEPT

查看一下防火墙是不是打开了 873端口;

iptables-L

通过rsync客户端来同步数据

rsync-avzP linuxsir@::linuxsirhome linuxsirhome

Password:这里要输入linuxsir的密码,是服务器端提供的,在前面的例子中,我们用的是 222222,输入的密码并不显示出来;输好后就回车;

注:这个命令的意思就是说,用linuxsir用户登录到服务器上,把linuxsirhome数据,同步到本地目录linuxsirhome上。当然本地的目录是可以你自己定义的,比如 linuxsir也是可以的;当你在客户端上,当前操作的目录下没有linuxsirhome这个目录时,系统会自动为你创建一个;当存在linuxsirhome这个目录中,你要注意它的写权限。

说明:

-a参数,相当于-rlptgoD,-r是递归-l是链接文件,意思是拷贝链接文件;-p表示保持文件原有权限;-t保持文件原有时间;-g保持文件原有用户组;-o保持文件原有属主;-D相当于块设备文件;

-z传输时压缩;

-P传输进度;

-v传输时的进度等信息,和-P有点关系,自己试试。可以看文档;

rsync-avzP--delete linuxsir@::linuxsirhome linuxsirhome

这回我们引入一个–delete选项,表示客户端上的数据要与服务器端完全一致,如果 linuxsirhome目录中有服务器上不存在的文件,则删除。最终目的是让linuxsirhome目录上的数据完全与服务器上保持一致;用的时候要小心点,最好不要把已经有重要数所据的目录,当做本地更新目录,否则会把你的数据全部删除;

rsync-avzP--delete--password-file=rsync.password linuxsir@::linuxsirhome linuxsirhome

这次我们加了一个选项–password-file=rsync.password,这是当我们以linuxsir用户登录rsync服务器同步数据时,密码将读取 rsync.password这个文件。这个文件内容只是linuxsir用户的密码。我们要如下做;

复制代码

代码如下:

touch rsync.password

chmod 600 rsync.password

echo"222222" rsync.password

rsync-avzP--delete--password-file=rsync.password linuxsir@::linuxsirhome linuxsirhome

注:这样就不需要密码了;其实这是比较重要的,因为服务器通过crond计划任务还是有必要的;

让rsync客户端自动与服务器同步数据

编辑crontab

crontab-e

加入如下代码:

10 0*** rsync-avzP--delete--password-file=rsync.password linuxsir@::linuxsirhome linuxsirhome

表示每天0点10分执行后面的命令。更多crontab用法请参考

阅读剩余
THE END