1. 拓扑结构
server端IP: 192.168.80.137
rsync服务依赖xinetd超级服务的管理,因此两个服务都需要进行安装。
服务端备份源: /var/www/html
客户端备份目的地址: /web-back
2. 服务端操作
1) 安装xinetd
rpm -ivh /media/Packages/xinetd-2.3.14-39.el6_4.x86_64.rpm
2) 安装rsync
rpm -ivh /media/Packages/rsync-3.0.6-9.el6_4.1.x86_64.rpm
注: rsync服务可能已经安装了。
3) 修改/etc/xinetd.d/rsync文件
service rsync
{
disable=no#此行原=yes,改为=no
flags=IPv6
socket_type=stream
wait=no
user=root
server= /usr/bin/rsync
server_args= --daemon
log_on_failure+=USERID
}
4) 启动xinetd服务
service xinetd start
netstat -anupt | grep 873
5) rsync命令参数
-a, --archive archive mode 权限保存模式,相当于 -rlptgoD 参数,存档,递归,保持属性等
-r, --recursive 复制所有下面的资料,递归处理
-p, --perms 保留档案权限 ,文件原有属性
-t, --times 保留时间点,文件原有时间
-g, --group 保留原有属组
-o, --owner 保留档案所有者(root only)
-D, --devices 保留 device 资讯(root only)
-l, --links 复制所有的连接 ,拷贝连接文件
-z, --compress 压缩模式, 当资料在传送到目的端进行档案压缩.
-H, --hard-links 保留硬链接文件
-A, --acls 保留 ACL 属性文件,需要配合--perms
-P,-P 参数和 --partial --progress 相同.只是为了把参数简单化,表示传进度
--version, 输出 rsync 版本
-v , --verbose 复杂的输出信息
-u, --update 仅仅进行更新,也就是跳过已经存在的目标位置,并且文件时间要晚于要备份的文件,不覆盖新的文件
--port=PORT, 定义 rsyncd(daemon)要运行的 port(预设为 tcp 873)
--delete, 删除那些目标位置有的文件而备份源没有的文件
--password-file=FILE ,从 FILE 中得到密码
--bwlimit=KBPS, 限制 I/O 带宽
--filter “ -filename” ,需要过滤的文件
6) 服务端添加两个测试用户rget1和rput1
useradd rget1
echo rget1:123 | chpasswd
useradd rput1
echo rput1:123 | chpasswd
7) 服务端备份源权限的添加
setfacl -R -m user:rget1:rwx /var/www/html
setfacl -R -m default:user:rget1:rwx /var/www/html #为将来新加的文件设置默认的权限
getfacl /var/www/html #检查权限设置
3. 客户端操作
1) 安装rsync
rpm -ivh /media/Packages/rsync-3.0.6-12.el6.x86_64.rpm
2) 新建备份目的目录
mkdir /web-back
3) 测试备份
rsync -azP [email protected]:/var/www/html/ /web-back
注 : 如有些文件提示权限不足,则到服务器上修改文件权限为744即可。
4. 制定计划任务备份数据
1) 计划任务脚本
rsync.sh
#!/bin/bash
rsync -az --delete rget1:192.168.80.137:/var/www/html/ /web-back/
tar -zcvf rsync-back-`date +%Y-%m%d`.tar.gz /web-back/
2) 制定计划任务
echo "0 2 * * * sh rsync.sh &" >> /var/spool/cron/root
注 : 也可使用incron设置成触发式的自动备份,incron知识可参考本人博客“incron触发式计划任务”