资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

必备技能rsync同步备份-创新互联

一、了解rsync;

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了大名免费建站欢迎大家使用!

1、 rsync是一款类unix增量备份工具,可以实现快速的镜像同步。

2、 rsync的特点:

1) 同步整个目录(递归同步)树

2) 能保持文件的属性(权限、时间、软硬链接)

3) 快速:首次同步时完全复制,再次同步只同步修改部分,且传输是压缩的。

4) 安全:可以调用ssh协议加密传输

5) 支持匿名的站点同步,实现公共资源共享。

3、 rsync工作原理:

1) rsync的架构:C/S;角色分为同步源(备份源)、发起端。

发起端:发起rsync请求的。

同步端:相应rsync请求的。

2) 同步的方向:

上行同步:数据在发起端,本地登陆用户对数据必须有读取权限,远程用户必须对目录有写的权限

下行同步:数据在同步源,本地登陆用户对目录必须有写入权限,远程用户必须对数据有读的权限

二、rsync的基本使用

1、 基本语法:

本地同步:rsync [选项] 数据 目标目录

远程上行同步: rsync [选项] 数据  用户@IP:/目标目录

远程下行同步: rsync [选项] 用户@IP:/数据/ 目标目录

2、 常用的选项:

-avzH  ##a归档并保留属性,v显示详细信息,z压缩,H保留硬链接

--delete ##删除目标目录有但源数据中没有的文件

3、 注意事项

1) 源数据加“/“ 表示同步目录的内容;不加”/“表示同步目录本身及其内容。

2) --delete选项经常用来删除大文件,速度很快。

4、 远程同步:推荐使用SSH的方式,即安全又方便。

1) 创建用户(同时在发起端和同步源上完成)

2) Setfacl设置权限,保证rsync的权限和远程程序权限

3) 配置ssh的密钥队登陆实现rsync无密码执行

4) 编写脚本和计划任务,完成定时的同步

三、rsync+inotify自动同步

1、 了解inotify:linux内核提供文件系统变化监控并通知的机制,通过inotify—tool工具进行管理。

2、 调整内核参数:

max_queue_events:监控队列大小

max_user_instances:最多监控实例数

max_user_watches:每个实例最多监控文件数

fs.inotify.max_queued_events = 16384

fs.inotify.max_user_instances = 1024

fs.inotify.max_user_watches = 1048576

3、 inotify-wait命令的语法:

inotifwait -mrq -e modify,create,move,delete,attrib 目录 选项:-m持续监控、r递归、q简化输出,-e指定监控事件

4.     编写脚本并设置后台开机运行

[lu01@localhost bin]$ cat rsync_ inotify.sh

#!/bin/bash

##by www.linuxfan.cn 2016-11-25

DIR=/var/www/html/

RSYNC="rsync -azH --delete $DIR ru01@192.168.100.151:$DIR"

INOTIFY="inotifywait -mrq -e modify,move,create,attrib,delete $DIR"

$INOTIFY |while read DIRECTORY EVENT FILE;do

$RSYNC

done

/home/lu01/bin/rsync_inotify.sh & ##后台运行

注:rsync+inotify只在上行同步使用

案例:下载

备份源操作:

mkdir /opt/data

touch /opt/data/{1..9}.txt

useradd r_get

echo 123123 |passwd --stdin r_get

rpm -qa rsync ##确认已经安装rsync软件

netstat -uptln |grep 22

确认r_get用户对/opt/data有读权限

必备技能rsync同步备份

发起端操作:

rsync -avzH r_get@192.168.100.151:/opt/data/ /tmp  ##下载

必备技能rsync同步备份

必备技能rsync同步备份

rsync -avzH r_get@192.168.100.151:/opt/data /tmp  ##对比差异

必备技能rsync同步备份

必备技能rsync同步备份

rsync -avzH r_get@192.168.100.151:/opt/data/ /tmp --delete ##保证数据一致,下行同步以同步源为依据

必备技能rsync同步备份

必备技能rsync同步备份

必备技能rsync同步备份

案例:上传

备份源操作:

mkdir /opt/data_bak

useradd r_put

echo 123123 |passwd --stdin r_put

setfacl -m u:r_put:rwx /opt/data_bak  ##确保用户对目标目录有写入权限

getfacl /opt/data_bak

确保rsync和sshd正常

必备技能rsync同步备份

发起端操作:

mkdir /data

touch /data/{1..9}.avi

rsync -avzH /data r_put@192.168.100.151:/opt/data_bak

必备技能rsync同步备份

必备技能rsync同步备份

rsync -avzH /data/ r_put@192.168.100.151:/opt/data_bak

必备技能rsync同步备份

rsync -avzH /data/ r_put@192.168.100.151:/opt/data_bak --delete

必备技能rsync同步备份

必备技能rsync同步备份

必备技能rsync同步备份

在备份源上验证结果。

案例:ssh密钥对认证后rsync同步

ssh-keygen -t rsa

必备技能rsync同步备份

ssh-copy-id r_get@192.168.100.151 ##给下载用户上传公钥匙

ssh-copy-id r_put@192.168.100.151

ssh r_get@192.168.100.151 ##登录验证,r_put同理

必备技能rsync同步备份

执行rssync同步验证:

vi /root/bin/rsync.sh

#!/bin/bash

rsync -avzH /data/ r_put@192.168.100.151:/opt/data_bak --delete

rsync -avzH r_get@192.168.100.151:/opt/data/ /tmp --delete

grep rsync /var/spool/cron/root

if [ $? -ne 0 ];then

echo "30 0 * * 6 /root/bin/rsync.sh &>/var/log/rsync.log" >/var/spool/cron/root

:wq

chmod +x /root/bin/rsync.sh

必备技能rsync同步备份

2.inotify+rsync实时同步:上行同步

1)安装inotify-tools

tar zxvf inotify-tools-*.tar.gz -C /usr/src/

cd /usr/src/inotify-tools-*/

./configure &&make &&amake install

ls /usr/local/bin/inotify*

必备技能rsync同步备份

2)inotify的使用:

vi /etc/sysctl.conf

fs.inotify.max_queued_envents = 16384 ##监控事件队列数

fs.inotify.max_user_instances = 1024  ##监控实例数

fs.inotify.max_user_watches = 1048576 ##监控的文件数量

:wq

sysctl -p

必备技能rsync同步备份

inotifywait -mrq -e modify,create,attrib,move,delete /root/data ##-m持续监控,r递归目录,q简化输出,-e指定监控事件:modify修改、create创建、attrib权限修改、move移动、delete删除;在其他终端操作文件,查看变化

必备技能rsync同步备份

必备技能rsync同步备份

vi rsync_inotify.sh  ##实时同步脚本

#!/bin/bash

RSYNC="rsync -avzH /root/data/ r_put@192.168.100.151:/opt/data_bak/ --delete"

INT_CMD="inotifywait -mrq -e modify,create,move,delete,attrib /root/data/"

$INT_CMD |while read DIRECOTRY EVENT FILE;do

$RSYNC

done

:wq

必备技能rsync同步备份

chmod +x rsync_inotify.sh

rsync_inotify.sh & ##启动脚本

测试验证。

必备技能rsync同步备份

必备技能rsync同步备份

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:必备技能rsync同步备份-创新互联
路径分享:http://cdkjz.cn/article/diojsd.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220