- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
粗略地说,单向数据绑定(bind)只是与 ng-model 绑定(bind)。当涉及 Controller 时,在页面内和 2-way 内。有人可以向我解释这个概念,以便我真正了解如何看待它吗?还有什
我想知道是否有任何替代 2 向 SSL 的方法。 2 向 SSL 是确保客户端和服务器可信通信的唯一选择吗?我有一个自签名证书供我的客户使用,我能否将自签名证书重新用于 2 种 SSL 方式,还是应该
如果是这样,你如何设置认证证书,你需要什么文件?是 .pfx 吗?您将如何在浏览器中安装它?一直试图通过浏览器测试 2 路 ssl。我有一个网络服务,尝试连接时总是返回认证身份验证失败。 最佳答案 扩
我希望能够对 XHTML 文档进行三向合并: 从文档的一些原始副本开始 一个用户编辑原始文档的副本 另一个用户编辑原始文档的单独副本 需要一个工具来合并(自动和/或可视化)两个用户所做的更改。 注意:
我有 4 张 table : ad (id, ...) website (id, title, URL, ...) space (id, website_id, ...) ad_space_count
我在 java 中有一个无状态服务,部署在 tomcat 网络服务器中,我还配置了 2 路 ssl 验证。到目前为止,一切正常。当我有一个新客户端时,我只需要将新客户端证书放入我的 trustore
我已经创建了一个带有证书的信任库和带有私钥的 keystore 。我已经放置了以下代码,加载了 trsustore 管理器和 keystore 管理器,然后创建了 SSL 上下文的实例。 每当我向网络
如果我在仅服务器身份验证中正确理解 SSL/TLS,握手后,服务器会向客户端发送它的公钥和由 CA 签名的数字签名证书。如果客户端有这个 CA 的公钥,它就可以解密证书并与服务器建立信任。如果它不信任
我有 Nginx,它使用双向 TLS 代理从客户端到 IBM DataPower 的请求。 从 Nginx 向 IBM DP 发送消息时出现错误:sll server (SERVER) ssl pee
我刚刚开始了一个项目,让我的雇主成为一个管理软件。我有一个琐碎但可能很简单的查询,我似乎找不到任何相关信息。 在对象之间建立“具有”关系的两种方式是否谨慎/良好做法。例如,Client 对象“有一个”
我在设置双向 SSL 身份验证时遇到问题。 我需要从 wso2 企业集成商访问 HTTPS 端点。 服务提供商给了我一个 pfx keystore ,其中包含我必须提供给服务器的证书和私钥。 我在我的
我正在为小型 PoC 构建 AWS Lambda 服务。 PoC 中的流程是: 通过 POST 获取(文本)输入, 执行小字符串操作 + 将操纵值存储到 DynamoDB 中,然后 通过 HTTP P
我的任务是在 Java 上下文中实现双向 TLS。我找到了一个示例 ( https://www.opencodez.com/java/implement-2-way-authentication-us
我正在尝试测试一个非常简单的双向 IM 应用程序。客户端在 android 上,服务器在我的 PC(java)上。我已经在 PC 到 PC 之间用 java 测试了这个应用程序,它工作正常。 但是在我
我有 java web 服务支持2-way ssl auth。所以我有客户端 keystore (client.p12),服务器证书在受信任的存储区中,服务器 keystore 中的客户端证书在受信任
通过 HTTPS 使用 Web 服务 我们有一个我们正在使用的网络服务。 Webservice 可以在 HTTP 和 HTTPS 协议(protocol)上运行。使用 HTTP 没问题,但如何使用 H
我在 Node.js 上有一个后端服务器,我正在尝试在 Nginx 和这个后端服务器之间设置 2 路 SSL。 但是我得到一个错误:2015/11/02 06:51:02 [错误] 12840#128
我一直在尝试连接到启用了 2 路 SSL 的服务端点。我正在使用 Spring resttemplate。我已将证书添加到 keystore 中,但出现以下错误: >org.springframewo
从 CherryPy 3.0 开始,只需指向服务器证书和私钥即可启用单向 SSL,如下所示: import cherrypy class HelloWorld(object): def ind
这个问题来自:MySQL Number of Days inside a DateRange, inside a month (Booking Table) 我有一个包含以下数据的表: CREATE
我是一名优秀的程序员,十分优秀!