Linux Rsync实现异地备份全攻略 (linux rsync异地备份)

随着互联网的发展,数据备份的需求越来越强烈。而对于企业来说,数据安全的重要性更是不言而喻。为了保护重要数据的安全,备份的工作也变得不可或缺。而在备份方案的选择上,Linux Rsync已经成为了备份的首选方案之一,它可以实现异地备份,对于企业来说备份的可靠性大大提高。

Rsync是一个数据同步工具,常用于备份文件,支持复杂的过滤规则,可以使用SSH或RSH协议保证数据同步的安全性。在Linux系统中,Rsync已经被广泛使用,因为它不仅可以节省磁盘空间,而且可以为数据的传输提供更稳定和快速的通道。本文将会详细介绍如何配置Rsync实现Linux系统的异地备份。

一、环境准备

在使用Rsync进行备份时,需要准备两台Linux服务器。一台作为源服务器(也称为主机),另一台则是目标服务器(也称为备用机)。这两台服务器需要在同一个网络中,并且应该彼此可以访问。

二、安装Rsync

如果你的Linux系统中没有安装Rsync,那么需要执行以下命令来安装:

Ubuntu/Debian系统:

sudo apt-get install rsync

CentOS/Fedora系统:

sudo yum install rsync

安装完成后,可以通过以下命令查看Rsync的版本信息:

rsync –version

如果出现了类似于下图的输出,那么说明Rsync已经成功安装:

三、配置SSH

在Linux系统中,SSH协议是非常安全的远程登录协议。在备份数据时,我们可以使用SSH协议来保证数据传输的安全性。因此,我们需要确保目标服务器可以通过SSH协议访问源服务器。

首先需要在源服务器上安装OpenSSH。如果已安装OpenSSH,则跳过此步骤。

Ubuntu/Debian系统:

sudo apt-get install openssh-server

CentOS/Fedora系统:

sudo yum install openssh-server

安装完成后,需要修改sshd_config文件,设置SSH服务可以被远程访问。执行以下命令进行修改:

sudo vi /etc/ssh/sshd_config

找到以下两行,并将注释符#删去:

PermitRootLogin yes

PasswordAuthentication yes

修改完成后,保存并退出。

然后,需要重启SSH服务,执行以下命令:

sudo systemctl restart sshd

接着,在目标服务器上安装SSH客户端,如果已安装则跳过此步骤。

Ubuntu/Debian系统:

sudo apt-get install openssh-client

CentOS/Fedora系统:

sudo yum install openssh-clients

安装完成后,可以通过执行以下命令来连接到源服务器:

ssh user@source_server_ip

其中,user应该替换为源服务器的用户名,source_server_ip替换为源服务器的IP地址。

如果连接成功,就说明SSH协议已经配置好了。

四、配置Rsync

在源服务器上创建一个备份目录,并确保对该目录有写权限,然后将需要备份的文件和目录复制到这个备份目录中。在这里,我们以/home/user/backup目录作为备份目录。

在目标服务器上,也需要创建一个备份目录。设置对此目录有写权限,并确保目标服务器可以访问源服务器。在这里,我们以/home/user/backup目录作为备份目录。

然后,在源服务器上创建一个Rsync配置文件,以便在备份时使用。可以使用任何文本编辑器来创建此文件。可以将此文件保存在/etc/rsyncd.conf目录中,也可以保存在任何其他目录中。

在Rsync配置文件中,需要定义需要备份的目录、服务器信息和备份目录的位置。可以按照以下格式来定义需要备份的目录:

[backup]

path = /home/user/backup

comment = “backup directory”

其中,backup是一个自定义的备份名称,path是需要备份的目录的路径,comment是对备份目录的描述信息。

接下来,需要设置目标服务器的IP地址和备份目录的位置,例如:

[backup]

path = /home/user/backup

comment = “backup directory”

hosts allow = target_server_ip

uid = rsyncuser

gid = rsyncuser

其中,target_server_ip是目标服务器的IP地址,uid和gid表示要将备份文件的所有权设置为rsyncuser。这将确保在备份后,目标服务器上的所有备份文件都属于rsyncuser用户。

需要设置备份的模式和过滤规则。可以按照以下模板来设置:

[模式]

path = /path/to/source/directory

exclude = file1, file2, …

include = file3, file4, …

delete = true

auth users = username

secrets file = /path/to/secrets/file

其中,模式可以是read only、read write或list等。path是需要备份的源目录。exclude是需要排除的文件或目录的列表。include是需要包括的文件或目录的列表。delete表示是否删除在目标服务器上已删除的文件。auth users是需要验证的用户名。secrets file指定的文件包含用于验证访问用户的密码。

五、启动Rsync备份

在所有的配置都完成后,我们可以使用以下命令来启动Rsync备份:

sudo rsync -vzrtopg –progress –delete -a -H –delete-after –exclude-from=excludes.txt /home/user/backup/ rsyncuser@target_server_ip:/home/user/backup

其中,/home/user/backup是源目录,rsyncuser是目标服务器的用户名,target_server_ip是目标服务器的IP地址。

六、结语

使用Linux Rsync可以轻松实现异地备份,保护数据的安全。在本文中,我们讲解了如何在Linux中配置Rsync备份方案的完整过程。起来,只需要进行以下步骤即可:

准备两台Linux服务器,并确保在同一网络中。

安装Rsync和OpenSSH,创建备份目录,配置并启动Rsync备份。

相关问题拓展阅读:

如何把linux下的数据自动备份到异地的另一台win上

1.Linux下目录复制:本机->远程服务器scp -r /home/shaoxiaohu/test1 :/home/test2 #test1为源逗伏目录,test2为目标目录,。2.Linux下目录复制:远程服务器->本机正指信scp -r :/home/test2 /home/shaoxiaohu/test1,test1为源目录,test2为目标目录。注:如果端口号有更改,需在scp 后输入:-P 端口号 (注意是大写,ssh的命令中 -p是小写)

linux服务器中如何登陆另一台Linux服务器中的Oracle数据库进行全库备份?

1、你可以在数据库A做计划任务,用exp或者expdp导出,然后scp或者rsync到服务器B

例如计划任务0 0 * * * /data1/backup/expdp_db_bak.sh;

expdp_db_bak.sh内容:

#!/bin/sh

. ~/.bash_profile

dst=/data1/backup/db_bak

today=`date +%F`

bakfile=expdp_db_${today}.dmp

logfile=expdp_db_${today}.log

expdp ‘user01/778899’ DIRECTORY=expdp_dir1 parallel=2 \

dumpfile=$bakfile SCHEMAS=user01 logfile=$logfile COMPRESSION=all

scp -P22 $bakfile :/data1/backup/db_bak

exit 0;

2、带坦也可以在服务器B用exp直接导出数据

exp ‘user01/778899@DB01’ file=$bakfile FULL=Y log=bak.log

3、开启归档模式,在服务器A用rman 做全备或增量蠢灶桐备份,然后将备份同步到服务器B

指定路径

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘/data1/rman/full_%d_%U’辩悔;

全备份,默认Format

backup incremental level 0 database;

增量备份

backup incremental level 1 database;

将备份rsync 到服务器B

/usr/bin/rsync -av ‘-e ssh -p 22’ :/data1/rman /data1

4、开启归档模式,在服务器AB间配置DATAGURAD,同步数据

dataguard,stream replication,goldengate…..

方法很多,看你具体需求了

Linux下rsync命令用法

1、首先要设置一台rsync服务器比如A服务器,否则2个都是客户机无法传递,还不如scp

2、B服孝清码务器的test目录权限一定要开放,更好是777

3、rsync有6种状态,可以从A到B,也可以从B到A,升值可以从A到B,C,D等等

4、rsync的语句结构是:rsync … SRC …

你可以man或rsync –help看一下关于option,给你个使用rsync语句2台服务器同步的实例:rsync -vazu –progress –password-file=/etc/rsyncd.secrets ::Samba /home/Samba/

解释:-vazu v代巧哪表详细输出 a代表归档 z代表压缩传递 u代表只更新改正困动的地方

progress显示传输过程

–password表示可以选择后面的密码文件去自动匹配密码

还可以加上 –delete选项,将服务器没有的内容删除等等,选项很多,用法灵活,再配合crontab可以实现自动同步备份。

rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一详细说明

在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项碧悉一一进行分析说明。

Rsync的命令察慧指格式可以为以下六种:

  rsync … SRC DEST

  rsync … SRC HOST:DEST

  rsync …

HOST:SRC DEST

  rsync … HOST::SRC DEST

  rsync

… SRC HOST::DEST

  rsync …

  对应于以上六种命令格式,rsync有六种不同的工作模式:

  1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。如:rsync -a /data /backup

  2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:”分隔符时启动该模式。如:rsync

-avz *.c foo:src

  3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:”分隔符时启动该模式。如:rsync

-avz foo:src/bar /data

  4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。如:rsync -av

::www /databack

  5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。如:rsync -av /databack

::www

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

-v

rsync参数的具体解释如下:

-v,

–verbose 详细模式输出

-q, –quiet 精简输出模式

-c, –checksum 打开校验开关,强制对文件传输进行校验

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

-r, –recursive

对子目录以递归模式处理

-R, –relative 使用相对路径信息

-b, –backup

创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用–suffix选项来指定不同的备份文件前缀。

–backup-dir 将备份文件(如~filename)存放在在目录下。

-suffix=SUFFIX 定义败配备份文件前缀

-u,

–update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)

-l, –links 保留软链结

-L, –copy-links 想对待常规文件一样处理软链结

–copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结

–safe-links 忽略指向SRC路径目录树以外的链结

-H, –hard-links 保留硬链结

-p, –perms

保持文件权限

-o, –owner 保持文件属主信息

-g, –group 保持文件属组信息

-D, –devices

保持设备文件信息

-t, –times 保持文件时间信息

-S, –sparse 对稀疏文件进行特殊处理以节省DST的空间

-n,

–dry-run现实哪些文件将被传输

-W, –whole-file 拷贝文件,不进行增量检测

-x, –one-file-system

不要跨越文件系统边界

-B, –block-size=SIZE 检验算法使用的块尺寸,默认是700字节

-e, –rsh=COMMAND

指定使用rsh、ssh方式进行数据同步

–rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息

-C,

–cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件

–existing

仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件

–delete 删除那些DST中SRC没有的文件

–delete-excluded 同样删除接收端那些被该选项指定排除的文件

–delete-after 传输结束以后再删除

–ignore-errors 及时出现IO错误也进行删除

–max-delete=NUM 最多删除NUM个文件

–partial

保留那些因故没有完全传输的文件,以是加快随后的再次传输

–force 强制删除目录,即使不为空

–numeric-ids

不将数字的用户和组ID匹配为用户名和组名

–timeout=TIME IP超时时间,单位为秒

-I, –ignore-times

不跳过那些有同样的时间和长度的文件

–size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间

–modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0

-T –temp-dir=DIR

在DIR中创建临时文件

–compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份

-P 等同于 –partial

–progress 显示备份过程

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

–exclude=PATTERN

指定排除不需要传输的文件模式

–include=PATTERN 指定不排除而需要传输的文件模式

–exclude-from=FILE

排除FILE中指定模式的文件

–include-from=FILE 不排除FILE指定模式匹配的文件

–version 打印版本信息

–address 绑定到特定的地址

–config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件

–port=PORT 指定其他的rsync服务端口

–blocking-io 对远程shell使用阻塞IO

-stats

给出某些文件的传输状态

–progress 在传输时现实传输过程

–log-format=formAT 指定日志文件格式

–password-file=FILE 从FILE中得到密码

–bwlimit=KBPS 限制I/O带宽,KBytes per second

-h, –help 显示帮助信息

linux rsync异地备份的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux rsync异地备份,Linux Rsync实现异地备份全攻略,如何把linux下的数据自动备份到异地的另一台win上,linux服务器中如何登陆另一台Linux服务器中的Oracle数据库进行全库备份?,Linux下rsync命令用法的信息别忘了在本站进行查找喔。


数据运维技术 » Linux Rsync实现异地备份全攻略 (linux rsync异地备份)