项目中需要用到 rsync 进行文档同步备份。看了下网上教程弄好了,不过觉得网上教程条理不清晰容易让初学者看得云里雾里,这里写个简明教程让人立马可以上手使用。
-
rsync 简介
:
用于服务器同步目录及文档,功能相当强大上。不过它是把一个文档划分成多个块进行扫描对比,所以可以进行差异同步,效率高速度也快。并且备份文档能保留源文档的权限、属主、属组、时间等属性。
其工作方式分为命令行和服务模式两种。前者就和scp命令接近,后者和samba工作模式相似。
假设服务器为192.168.0.1,其上的文件需要备份。 客户机为192.168.0.3,保存备份文档。两个机器系统皆为CentOS5。
-
命令行模式
:
这种方式采用SSH方式进行工作,传输的口令及文档内容全部是加密数据。远程账号(下例中的mark)是远程服务器实体账户,口令也是此实体账户的系统口
令。
注意都只有一个冒号:
# rsync -avzP mark@192.168.0.1:/var/samba /tmp
注意 samba后面的斜杠
# rsync -avzP mark@192.168.0.1:/var/samba/ /tmp
将会提示你输入口令
第一条命令是把远程01主机 上 /var/samba 这个目录同步到本地 /tmp 目录下;
第二条命令是把远程01主机上 /var/samba 目录下的内容
同步到本地 /tmp 目录下,就是说 /tmp 中不会同步有 samba 这个目录而是直接存放 远程 samba 下的内容。
-
服务模式
:
此模式传输口令是加密信息,但传输的文档内容是非加密的。 和Samba工作模式相似,需要设置服务提供的“模块”——一个模块包含源路径、允许使用账户、权限等信息,在Samba中称为“服务”。比如,
rsync.conf 写道
[sambaFile]
path = /var/samba
list = yes
ignore errors=yes
read only = yes
auth users = admin
secrets file = /etc/rsync/rsync.secrets
comment = samba
#exclude =
[files]
path = /var/upload
list = yes
ignore errors=yes
read only = yes
auth users = mark
secrets file = /etc/rsync/rsync.secrets
comment = upload files
path:需要被备份的目录路径
list: 是否列表显示该模块。 列表命令 rsync --list-only 192.168.0.1::
read only: yes表示客户端无法修改,只能下载(同步)文件
auth users:允许使用此资源(指sambaFile这个小节模块)的用户。用逗号分隔多个用户。此用户必须为系统实 体账户,这一点和Samba是一致的。
secrets file:此文件对应auth users中账户的口令。
secrets file文件格式为:
rsync.secrets 写道
admin:pass-for-admin
mark:pass-for-mark
每个账户一行,以冒号分隔用户名和口令。 出于安全,账户口令一定不要和实体账户的口令一致!
这和samba的要求是相同的。 并且rsync.secrets文件必须是属于root且 600,否则同步时程序会提示出错。需要执行:
# chown root:root /etc/rsync/rsync.secrets
# chmod 600 /etc/rsync/rsync.secrets
在服务端可以xinetd方式启动,也可以stand-alone方式启动
# 直接执行方式
# /usr/bin/rsync --daemon --config=/etc/rsync/rsync.conf '
# 写入启动脚本以便虽系统启动而启动rsync服务,注意随系统不同 rc.local 的路径可能有差异
# echo '/usr/bin/rsync --daemon --config=/etc/rsync/rsync.conf ' >> /etc/rc.local
然后在客户机上执行,
# mkdir /home/backup/rsync
# cd /home/backup/rsync
# touch rsync.pas
# chmod 600 rsync.pas
# echo 'pass-for-admins' > rsync.pas
# 注意:上面一行写入的是你准备同步使用的账户的口令
同步开始,
# /usr/bin/rsync -azh --password-file=/home/backup/sync/rsync.pas \
admins@192.68.0.1::sambaFile /home/backup/sync/samba &
-
快速部署
没时间研究的朋友可以直接下载附件文档,修改下内容即可投入使用
- rsync.tar.gz 文档解压到服务器 /etc下,编辑 rsync.conf 中“模块”需要备份文档的路径。然后启动服务,命令为
# tar -zxvf rsync.tar.gz -C /etc
# ...do 编辑模块
# /usr/bin/rsync --daemon --config=/etc/rsync/rsync.conf
- rsync.cron.tar.gz 文档解压到客户机 /home/backup/rsync 下,然后开足马力拉文件吧。命令为
# mkdir /home/backup/rsync -p
# tar -xzvf rsync.cron.tar.gz -C /home/backup/rsync
# 开工啦……
# /home/backup/rsync/cron.rsync.sh
如果需要每天凌晨00:30开始自动同步,则需要把脚本加入cron计划任务中
# crontab -e
# 把下面内容追加进去 ,注意没有前面那个 # 号哟
# 30 0 * * * /home/backup/rsync/cron.rsync.sh 1> /dev/null
- 注意事项:
rsync.conf 文件中 hosts allow/hosts deny 未做设置,所以任何机器都可以访问服务器rsync服务,这存在安全隐患。你应该自己修改合适的设置。
uid/gid 都是使用 root 账户而非默认的 nobody,这是为了防止有些文件因为权限限制而在客户机上拉不不过来。
-
相关资料
下面是一些关于rsync的文档资料,适合自己钻研:
http://rsync.samba.org/ftp/rsync/rsyncd.conf.html
http://wfyang.blog.51cto.com/65117/95826
http://www.linuxsir.org/main/?q=node/256
http://www.linuxsir.org/bbs/thread348137.html
需要补充的是上面两个链接中关于防火墙iptables的命令有误,正确的如下
# iptables -A INPUT -p tcp --dport 873 -j ACCEPT
# iptables -nvL 查看一下防火墙是不是打开了 873端口
关于iptables的详细信息可以参考鸟哥的作品:
http://linux.vbird.org/linux_server/0250simple_firewall.php
分享到:
相关推荐
windows rsync完整教程.docx
Rsync命令详解 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。 一、rsync的六种工作模式: ...
搭建Rsync服务,大规模文件迁移
Linux下rsync安装配置使用教程
linux发行版中大多都自带rsync,不过版本比较低,一般都是2.6.X 在2.X的版本中,rsync备份时都是先列表再备份(添加或者删除),在处理大量文件时,会耗费比较多的内存。 备份的时候,rsync扫描到的每个文件(目录也...
ubuntu rsync中文乱码 window ubuntu rsync同步中文乱码.docx
windows rsync工具类windows rsync工具类windows rsync工具类windows rsync工具类windows rsync工具类windows rsync工具类windows rsync工具类windows rsync工具类windows rsync工具类windows rsync工具类
aix下rsync安装包,可用于AIX平台下与linux平台下的数据同步
rsync 服务器架设方法 v0.1b (正在修订中) 作者: 北南南北 来自:Linuxsir.Org 摘要: rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用。...
于是放弃,打算用rsync进行同步,在摸索的过程中走了很多湾路,所以写出来让大家参考,网上的大部份的windows 和 rsync的教程都是存在问题的同步不了! 首先是要进群晖的SSH里进行修改相关配置文件,详细的见附件。 ...
AIX文件同步复制工具RSYNC,rsync-3.1.2 for aix6.1。。。
rsync_架设手册
rsync-3.1.2-4.el7.x86_64.rpm linux系统下rsync安装包
RSYNC软件介绍: rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下: 可以镜像保存整个目录树和文件系统。 可以很容易做到保持原来文件的权限、时间、软硬链接...
Rsync version 3.2.3
linux 下rsync文件夹同步配置,可以定时。
rsync+inotify实现实时同步 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同 步数据时,需要扫描所有文件后进行比对,进行差...
rsync-3.0.8源代码 Rsync version 3.0.8 released March 26th, 2011 Rsync version 3.0.8 has been released. This is a bug-fix release.
rsync是用于
用于一键部署rsync服务端环境,自动生成rsyncd.conf配置文件和密码文件,配置开机自动运行。只需在客户端配置下密码 ,就可以进行rsync同步