Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
rsync的优点:
①可以镜像保存整个目录树和文件系统;
②可以很容易做到保持原来文件的权限、时间、软硬链接等;
③无须特殊权限即可安装;
④优化的流程,文件传输效率高;
⑤可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接;
⑥支持匿名传输
web服务器的位linux,网站数据每天都在变更,为了保证数据安全,需要建立一个远程容灾系统,将网站数据在每天凌晨3点30分备份到远程的容灾服务器上。由于数据量很大,每天只能进行增量备份
A服务器,rsync服务器为B服务器,B作为A的远程容灾备份。
AB两个系统上都安装rsync软件,这样,在A系统上运行rsync守护进程
B系统上可以通过系统守护进程crontab来定时备份由A系统指定的数据,从而实现数据的远程容灾。
内核2.6.18
rsync
A系统上配置rsync
/etc/rsync.conf 需要手动建立。
文件有一个或多个模块结构组成,相应的,包括全局参数和模块参数,
uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
path = /test
comment = xxwg file
ignore errors
read only = no
write only = no
hosts allow = *
hosts deny = 192.168.12.100
list = false
uid = root
gid = root
auth users = backup #注:此账号只是用来传输上的验证,并不需要在系统里新建账号
secrets file = /etc/server.pass
/etc/server.pass内容如下:( server.pass 文件保持属主的600权限 )
backup:123456
rsync守护进程
B系统上安装配置rsync
rsync同步操作即可。
B系统上创建一个secrets file,此文件的内容为A系统rsyncd.conf文件中 auth users 选项指定用户的密码,路径随意,只需在执行rsync同步时指定即可。
同步命令如下:
这里要注意参数b,在一些资源性备份中,如图片,视频,文档等,应该加上,否则如果源硬盘数据损坏,就可能导致备份上的数据消失。后果很严重!!!
# /usr/local/bin/rsync -vzrtopg --delete --progress --exclude "*access*" --exclude "debug"
backup@192.168.12.253:
:xxwg /test --password-file=/etc/server.pass
600
rsync在每天凌晨3点30分执行镜像备份操作
30 3 * * * /usr/local/bin/rsync -vzrtopg --delete --progress --exclude "*access*" --exclude "debug"
backup@192.168.12.253:
:xxwg /test --password-file=/etc/server.pass
crontab文件即可。
/var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察
/var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。
任务
/var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。
转载于:https://blog.51cto.com/liuer/846125