| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 了解及部署rsync + inotify 远程同步 -> 正文阅读 |
|
[系统运维]了解及部署rsync + inotify 远程同步 |
一、rsync工具1.1 关于rsync一款快速增量备份工具
1.2 rsync 命令的基本用法
1.3 rsync实现下行同步下载、上行同步上传1.3.1 rsync服务端: 1.安装rsync,centos7桌面一般都已安装 ?# 安装rsync ?[root@rsync ~]# rpm -qa |grep rsync ? ?rsync-3.0.9-17.el7.x86_64 ?# 没有安装rsync,使用yum安装 ?[root@rsync ~]# yum -y install rsync 2.修改rsync配置文件 ?# 修改rsync配置文件 ?[root@rsync ~]# vim /etc/rsyncd.conf ? ##修改rsync配置文件 ?uid = root ?gid = root ?##禁锢在源目录 ?use chroot = yes ?##监听地址 ?address = 172.16.10.10 ?##监听端口 ?port 873 ?##日志文件位置 ?log file = /var/log/rsyncd.log ?##存放进程 ID 的文件位置 ?pid file = /var/run/rsyncd.pid ?##允许访问的客户机地址 ?hosts allow = 172.16.10.0/24 ?##共享模块名称 ?[wwwroot] ? ? ?## 源目录的实际路径 ? ? path = /var/www/html ? ? ?## 描述信息 ? ? comment = Document Root of www1.bdqn.com ? ? ?## 是否为只读 ? ? read only = yes ? ? ?## 同步时不再压缩的文件类型 ? ? dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z ? ? ?## 授权账户 ? ? auth users = backuper ? ? ?## 存放账户信息的数据文件 ? ? secrets file = /etc/rsyncd_users.db 3.创建源文件目录 ?[root@rsync ~]# mkdir -p /var/www/html 4.创建rsync用户及密码,格式为:用户名:密码 ?# 格式为:用户名:密码 ?[root@rsync ~]# echo "backuper:pwd123" > /etc/rsyncd_users.db ?[root@rsync ~]# cat /etc/rsyncd_users.db ?backuper:pwd123 ?# 修改rsync用户文件权限 ?[root@rsync ~]# chmod 600 /etc/rsyncd_users.db ?[root@rsync ~]# ll -d /etc/rsyncd_users.db ?-rw------- 1 root root 16 8月 ?20 09:00 /etc/rsyncd_users.db 5.启动rsync ?[root@rsync ~]# rsync --daemon ?[root@rsync ~]# netstat -natp |grep rsync ##查看状态 ?tcp ? 0 ? 0 172.16.10.10:873 ? ? 0.0.0.0:* ? LISTEN ? ? ?3606/rsync 1.3.2 rsync客户端: 客户端连接服务需要使用rsync命令,所以客户端也需要安装rsync 1.安装rsync,centos7桌面一般都已安装 ?# 安装rsync ?[root@rsync ~]# rpm -qa |grep rsync ? ?rsync-3.0.9-17.el7.x86_64 ?# 没有安装rsync,使用yum安装 ?[root@rsync ~]# yum -y install rsync 2.客户端从服务端同步下载数据 两种方式,分别如下: ?# 语法一:rsync -avz --delete 用户名@rsync服务器::共享模块名 ? 存放本地的路径 ?[root@client ~]# rsync -avz --delete backuper@172.16.10.10::wwwroot /opt ?# 语法二:rsync -avz --delete ? rsync://用户名@rsync服务器/共享模块名 ? 存放本地的路径 ?[root@client ~]# rsync -avz --delete ? rsync://backuper@172.16.10.10/wwwroot /opt/ 3.客户端向服务端同步上传数据 两种方式,分别如下: # 语法一:rsync -avz --delete 本地上传文件路径 用户名@rsync服务器::共享模块名 [root@client ~]# rsync -avz --delete backuper@172.16.10.10::wwwroot /opt # 语法二:rsync -avz --delete 本地上传文件路径 rsync://用户名@rsync服务器/共享模块名 [root@client ~]# rsync -avz --delete rsync://backuper@172.16.10.10/wwwroot /opt/ 4.设置无密码交互登录 # 创建密码文件 [root@client opt]# echo "pwd123" > /etc/server.pass # 修改文件权限 [root@client opt]# chmod 600 /etc/server.pass [root@client opt]# rsync -avz --delete --password-file=/etc/server.pass backuper@172.16.10.10::wwwroot /opt ##--password-file 指定密码文件位置 二、实现实时同步上传2.1 rsync服务端:修改配置文件 # 修改rsync配置文件 [root@rsync ~]# vim /etc/rsyncd.conf ##修改rsync配置文件 uid = root gid = root ##如果不是root用户登录则需要修改文件权限,给登录用户写的读写执行的权限 ... ## 是否为只读 read only = no ##只读模式改为 no ... 2.2 rsync客户端:1.调整 inotify 内核参数 当要监控的目录、文件数量较多或者变化较频繁时,建议加大这三个参数的值。例如,可直接修改/etc/sysctl.conf 配置文件,将管理队列设为 32768,实例数设为 1024,监控数设为 1048576,通常情况下监控数所设的值建议大于监控目标的总文件数。 [root@client html]# vim /etc/sysctl.conf fs.inotify.max_queued_events = 16384 ##监控事件队列数 fs.inotify.max_user_instances = 1024 ##监控最多实例数 fs.inotify.max_user_watches = 1048576 ##每个实例监控的最大文件数 [root@rsync html]# sysctl -p ##刷新生效 fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576 2.安装inotify [root@client ~]# yum -y install gcc gcc-* [root@client inotify-tools-3.14]# tar zxf inotify-tools-3.14.tar.gz [root@client inotify-tools-3.14]# cd inotify-tools-3.14/ [root@client inotify-tools-3.14]# ./configure && make && make install 3.inotifywait 的使用: [root@client ~]# inotifywait -mrq -e modify,create,move,delete /opt/ -m 持续监控 -r 递归目录 -q 简化输出信息 -e 用来指定要监控哪些事件 modify(修改)、create(创建)、move(移动)、delete(删除)、attrib(属性更改) 4.编写触发式同步脚本 [root@client ~]# vim /root/inotify_rsyncd.sh INOTIFY_CMD() { inotifywait -mrq -e modify,create,move,delete /opt/ } RSYNC_CMD() { rsync -az --delete --password-file=/etc/server.pass /opt/ backuper@172.16.10.10::wwwroot } INOTIFY_CMD | while read DIRECTORY EVENT FILE do RSYNC_CMD done 5.测试上行同步 # 在客户端运行inotify_server.sh 脚本程序 [root@client ~]# bash inotify_server.sh & ##后台运行 # 到客户端的/opt/ 目录,执行增加、删除、修改文件等操作 [root@client opt]# touch kc20 [root@client opt]# mkdir kgc # 查看服务器中的/var/www/html 目录下的变化情况 [root@rsync ~]# cd /var/www/html [root@rsync html]# ls kc20 kgc |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 13:33:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |