gpt4 book ai didi

使用rsync同步网路备份

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章使用rsync同步网路备份由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

一. 简介 。

rsync常用的备份工具, 它目前是由 rsync.samba.org 维护. 。

rsync使用所谓的"rsync算法",提供一个非常快速的档案传输方法, 使local和远端二部主机之间的档案达到同步,它主要是传送二个档案的异动部份,而非每次都整份传送, 因此速度相当地快. 。

rsync它可以搭配rsh或ssh,也可以当成daemon模式使用直接的socket连接, 所以rsync可以当做一个优异的备份工具来使用. 。

我这简单介绍运用rsync备份远程网路主机档案的基本方法.

在这,我们是给rsync当成linux的一种daemon模式来运行. 。

首先,先给个简单的定义:当然要一台主机跑rsync daemon模式, 我们就称这台机器为一rsync Server, 或者说这台主机是一台备份主机( Backup Server). 。

备份主机会开启一个873的端口(port), 等待对方rsync连接.所以服务器记的要开这个端口 。

连接时, rsync Server 会检查密码是否相符, 若通过密码查核, 则开始进行档案传输. 。

第一次连通完成时, 会把整份档案传输一次, 下一次就只传送二个档案之间异动的部份. 。

以上是rsync client (欲加以备份的远程网路主机) 和rsync server 的运作方式.

藉由上述方法, 我们当然也可以设立多部备份主机, 使网路主机上重要的档案能分散至数部主机中, 以分散风险. 。

一旦完成备份, 我们可以对这些备份主机再做进一步的储存动作, 如使用tar打成tar的包, 把档案备份到硬盘之类. 。

以下内容,我用Ubuntu 7.10做客户机,Centos5做服务器测试过. 。

二. 安装法 。

rsync目前最新版是 2.6.8, 可以到rsync.samba.org 下载. 。

若您使用 rpm 套件,请用下面的方法安装,当然rhel5和centos5中默认就安装了 。

#rpm -ivh rsync*.rpm 。

#yum install rsync 。

它的设定档位置在 /etc/rsyncd.conf,奇怪,我的没有自动生成这个文件,那我们就来自己配置他 。

三. 设定 rsync server: (假设这台主机名称为 rsync.x111.com) 。

rsync server 端要设定以下四项

1.规划建立备份目录区 。

2.启动xinetd中的rsync 。

3.设定: /etc/rsyncd.conf 。

4.设定: 密码档 。

依次说明如下

1. 规划建立备份目录区

建议您准备一个容量较大且独立的分割区, 并在其中开好备份目录, 如此 /blackup/x99 。

2. 启动xinetd中的rsync 。

系统默认没有安装xinetd.

# yum install xinetd 。

#service xinetd restart 。

#chkconfig rsync on 。

以上的操作,主要是要打开rsync这个daemon,一旦有rsync client要连接时,xinetd会把它转介给rsyncd (port 873). 。

3. 设定 /etc/rsyncd.conf

全局设置 。

uid = root 。

gid = root 。

use chroot = no # 不使用chroot 。

max connections = 4 # 最大连接数为4 。

pid file = /var/run/rsyncd.pid 。

lock file = /var/run/rsync.lock 。

log file = /var/log/rsyncd.log # 日志记录文件 。

以下的部分,代表开放给某一台rsync client 主机的设定, 简单范本如下

[x99] 。

path = /blackup/x99/x99_backup 。

auth users = x99_backup 。

secrets file = /etc/rsyncd.secrets 。

read only = no 。

以上文件的注解

[x99] 代表要备份的主机代号, 名称自己设置. 。

path 用来设定备份档案要存放在那一个目录.这个可先要mkdir开好,可以自己设置 。

auth users 代表授权的帐号, 可以自己设置. 。

secrets file 代表储存帐号密码的密码档, 其放置的路径档名. 。

当然, 这台备份主机, 可以容纳许多 rsync client 连接, 只要在 rsyncd.conf中设置对应的多个部分即可. 。

以下例子,代表二个主机x99及x100欲备份进来

[x99] 。

path = /blackup/x99/x99_backup 。

comment = XXXXX 。

auth users = x99_backup 。

secrets file = /etc/rsyncd.secrets 。

read only = no 。

[x100] 。

path = /blackup/x100/x100_backup 。

auth users = x100_backup 。

secrets file = /etc/rsyncd.secrets 。

read only = no 。

4. 设定密码文件

rsyncd.secrets 的内容很容易, 格式为"帐号:密码",

如以下例子

x99_backup:x99pass 。

注意! 上述设定只是一个例子,你自己设置可一定千万不要直接套用. 。

接下来, 要将 rsyncd.secrets 这个密码档的档案属性设为root拥有, 且权限要设为600, 否则无法备份成功.

因此, 请下

#chown root.root rsyncd.secrets 。

#chmod 600 rsyncd.secrets 。

至此, rsync的服务器这端已设定完成, 若欲查看备份日志. 。

#tail -f /var/log/rsyncd.log 。

接下来是 client 端(即欲备份的网路主机) 的设定. 。

四. 设定 rsync client (假设这台主机 IP 为 : 11.22.33.44) 。

步骤

1.设定密码档 。

2.测试rsync命令是否可以正常 。

3.将rsync指令放入定时任务(crontab) 。

另外, 假设x99这台主机是网路上的服务器, 现打算把/var/www/html这个目录加以备份至backup server(上面讲的rsync.x111.com).

但不想备份下面的目录中的内容/html/log,(也就是说要把/html/log目录排除), 整个操作方式如下

1. 假设把密码档放在 /root/rsyncd.secrets, 内容只要含有密码一行即可

x99pass 。

注意: rsyncd.secrets 的权限属性必须设为600,设置方法见上面. 。

2. 测试指令是否可以成功?

/usr/bin/rsync -rvztopglHpogDtS –progress –password-file=/root/rsyncd.secrets /var/www/html –exclude /html/log x99_backup@rsync.x111.com::x99 。

若出现传输目录档案的画面, 即表示测试成功.上面这个命令行中-rv里的v是verbose,z是压缩,r是递归,字目录一直,topg都是保持文件原有属性如属主、时间的参数。- -progress是指显示出详细的进度情况,–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。后面的 x99_backup@ip中,的x99_backup是指的用户名 。

3. 置入工作排程, 假设每天凌晨5点开始备份

crontab -u root -e 。

0 5 * * * /usr/bin/rsync -rvlHpogDtS –password-file=/root/rsyncd.secrets /var/www/html –exclude apache /html/log x99_backup@rsync.x111.com::x99 。

若您有其它目录(如 /home)要备份, 则如法泡制

20 5 * * * /usr/bin/rsync -rvlHpogDtS –password-file=/root/rsyncd.secrets /home x99_bakup@rsync.x111.com::x99 。

当然您觉得备份一台Backup Server不够,还可再按上述方法,自行增加任意多台Backup Server, 以分散风险.

五. 安全性

防火墙的 iptables 指令, 来限制 rsync client 的连线范围, 例子如下

iptables -A INPUT -p tcp -s ! xx.xx.xx.xx –dport 873 -j DROP 。

如此, 只有 xx.xx.xx.xx 这个 client IP 能连入这台 rsync server. 。

详细格式说明:

-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的shell程序 。

–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 显示帮助信息 。

最后此篇关于使用rsync同步网路备份的文章就讲到这里了,如果你想了解更多关于使用rsync同步网路备份的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com