Linux使用入门教程之Rsyslog日志管理、NTP和Rsync备份(3)

五、Rsync备份与同步

Linux使用入门教程之Rsyslog日志管理、NTP和Rsync备份

Rsync(Remote Sync) 是一个Unix/linux系统下的文件同步和传输工具。Rsync通过“rsync算法”提供了一个客户机和远程文件服务器的文件同步的快速方法。每次只传送两个文件的不同部分(即支持增量备份),而不是每次都整份传送。
在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客机的rsync同步操作的服务器称为备份源。
1、rsync工具的特点
能更新整个目录树和文件系统;
有选择性的保持符号链链、硬链接、文件属性、权限、设备以及时间等;
传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用;
能用rsh、ssh 或直接端口做为传输端口;
支持匿名rsync 同步文件,是理想的镜像工具;
格式:rsync 【选项】 源文件 目标文件
常用选项:
-a:--archive 归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于-rlptgoD
-r:-recursive 对子目录以递归模式处理
-v:显示同步过程的详细信息
-z:--compress 表示压缩传输
--delete:删除那些目标位置有而原始位置没有的文件
-H :表示硬连接文件
-l:--links 表示拷贝链接文件
-p :--perms 表示保持文件原有权限
-t:--times 表示保持文件原有时间
-g :--group 表示保持文件原有属用户组
-o :--owner 表示保持文件原有属主
-D :--devices 表示块设备文件信息
-A :保留ACL属性信息
-P :显示传输进度
-u :--update 仅仅进行更新,跳过所有已经存在于目标位置,并且文件时间晚于要备份的文件。
--port= :指定其他的rsync服务端口
--password-file= :指定密码文件获取用户密码,只能在rsync运行使用
2、基于SSH远程备份
1>.SSH本地下行同步到客户机(必须安装openssh-clients)
使用SSH协议的好处是能够基于更安全的远程连接,增强备份的保密性。
实验:将/var/www/html目录下文件下行同步到客户机192.168.0.200中/backup下,也可以是本地,保持文件权限和属性、软/硬链接、ACL属性、删除/wwwroot目录中多余的文件,并在传输过程中进行压缩。


useradd rsyn
password rsync
mkdir /backup
rsync -arzvH --delete rsync@192.168.0.200:/var/www/html/ /web/

2>.SSH上行同步到服务器
实验:将客户机/opt/web目录下文件上传同步到192.168.0.202服务器/var/www/html下
rsync -rzvl /usr/local/web --delete rsync@192.168.0.202:/var/www/html
对于设置任务计划的同步的话,为了解决交互式密码登陆,需要配置密钥对,实现无密码登陆。
在客户机上创建密钥对

ssh-keygen -t rsa #一直回车
ssh-copy-id rsync@192.168.0.200  #将公钥分发给服务器
ssh rsync@192.168.0.200  #现在就可以无密码登陆了,成功实现免交互自动登录
vi /root/rsync_web.sh #写一个脚本,创建任务计划
#!/bin/bash
CMD="/usr/bin/rsync"
RSYNC_USER="rsync"
ARGS="-az --delete"
SRC="192.168.0.200:/var/www/html"
DST="/web"
mkdir -p $DST
$CMD $ARGS $RSYNC_USER@SRC $DST
保存退出!
chmod 700 /root/rsync_web.sh
crontab -e
00 23 * * * /root/rsync_web.sh

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/19146.html