我的一次rsync+inotify本地数据同步示例
环境:
web工作目录:/var/www/mydafuhao
git仓库目录: /var/www/mydafuhao.git/mydafuhao
需求:inotify监控git仓库目录,发现有版本更新立即同步至web工作目录
之前的想法是git仓库目录与web工作目录做软连接,但是发现apache2 无法识别软连接的目录,具体原因没查到,所以用数据同步方法实现版本更新
ubuntu16.4 系统已经安装了rsync下载安装inotify
# apt-get install make #默认没有安装make
# apt-get install automake libtool
# wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
# tar xzf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.14/
# ./configure --prefix=/usr/local/inotify
# make && make install
---------------------------------------------------------------------------------------------------------
# cat /var/www/mydafuhao.com.git/notify_rsync.sh
#!/bin/bash
# xliang
# 2018-12-26
export PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/inotify/bin
WEB=mydafuhao.com
SRC=/var/www/$WEB.git #监控目录路径
DEST1=/var/www/$WEB #更新同步目录
DT=`date +"%Y-%m-%d %H:%M:%S"` # 打印当前时间
#wait for change
inotifywait -mrq --timefmt '%y-%m-%d %H:%M' --format '%T %w%f %e' \
--event modify,create,move,delete,attrib $SRC/$WEB | while read line
do
echo "[$DT] -> file update:" >> /var/www/$WEB.git/rsync.log 2>&1
echo "$line" >> /var/www/$WEB.git/rsync.log 2>&1
echo "" >> /var/www/$WEB.git/rsync.log 2>&1
rsync -avz --exclude=".git" --progress $SRC/$WEB/ $DEST1/ >> /var/www/$WEB.git/rsync.log 2>&1
done
---------------------------------------------------------------------------------------------------------
使用rsync一定要注意的一点是,源路径如果是一个目录的话,带上尾随斜线和不带尾随斜线是不一样的,不带尾随斜线表示的是整个目录包括目录本身,
带上尾随斜线表示的是目录中的文件,不包括目录本身。
---------------------------------------------------------------------------------------------------------
--然后执行此脚本 sh notify_rsync.sh
# nohup sh /var/www/mydafuhao.com.git/notify_rsync.sh & #后台执行
# echo "nohup sh /var/www/mydafuhao.com.git/notify_rsync.sh &" >> /etc/rc.local #开机启动
# ps -aux |grep notify
root 25939 0.0 0.0 4504 708 pts/1 S 10:32 0:00 sh /var/www/mydafuhao.com.git/notify_rsync.sh
我的一次rsync+inotify本地数据同步示例的更多相关文章
- rsync+inotify实时数据同步单目录实战
rsync+inotify实时数据同步单目录实战 rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起 ...
- rsync+inotify实时数据同步多目录实战
rsync+inotify实时数据同步多目录实战 inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 root@58server1 1 ...
- Rsync+inotify 实时数据同步 inotify master 端的配置
强大的,细致的,异步的文件系统事件监控机制.Linux 内科从 2.6.13 起支持 inotify Inotify 实现的几款软件:Inotify,sersync,lsyncd ※Inotify 实 ...
- Centos rsync+inotify 实现数据同步备份
最近公司做了一
- rsync简介与rsync+inotify配置实时同步数据
rsync简介 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync特性 rsync ...
- CentOS 6.5 rsync+inotify实现数据实时同步备份
CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...
- 通过rsync+inotify实现数据实时备份同步
一.环境描述 测试环境 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 环境描述: 主服务器172.26.7.50 ,从 ...
- Inotify+rsync实现实时数据同步
使用rsync可以实现数据同步,但是即使使用crontab定时任务最小执行间隔为1分钟,在数据实时性要求比较高场合需使用inotify+rsync实现实时同步 下载inotify wget https ...
- sersync基于rsync+inotify实现数据实时同步
一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192. ...
随机推荐
- C++ Sleep() sleep()
简介: 函数名: sleep 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 在VC中使用带上头文件 #include <windows ...
- [Writeup]与佛论禅
[Writeup]与佛论禅 垂死梦中惊坐起,李sin参悟佛真意 看题 沙雕sl宋雷发给我一道题 他用(Quoted-Printable)解出来一个奇怪经文(偷学) 李sin你怎么看?此中必有蹊跷! 前 ...
- Docker 在 Linux 平台的安装 以及一些常见命令
1,添加,清理 yum 源,查看应用列表 1.1,yum install -y epel-release 1.2,yum clean all 1.3,yum list (可以不运行) 2,安装, 启 ...
- PHP 使用非对称加密算法(RSA)
解释: 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey).公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密:如果用私有密 ...
- jquery 属性-记住
$("").attr(); $("").removeAttr(); $("").prop(); $("").remove ...
- iOS多语言
https://blog.csdn.net/huangmindong/article/details/53464334 App多语言,字符串统一放在 Localizable.strings 文件里. ...
- NSTimer内存泄漏
用NSTimer调用 timer = [NSTimer scheduledTimerWithTimeInterval:timerInterval target:self selector:@selec ...
- zookeeper 入门知识
作为开启分布式架构的基石,除了必会还有的选么 自己的一些理解,有错误的话请一定要给予指正! 一.是什么? 分布式数据一致性的解决方案. 二.有什么用 数据的发布/订阅(配置中心) . 负载均衡(du ...
- linux thread_info 与thread_struct
有个同事看3.10代码中,看着两个结构,会混淆,所以我简单答复了一下. thread_info是和内核栈放一块的,网上到处都是thread_info的资料,但thread_struct的资料比较少,在 ...
- c/c++基础 const
int main(int argc, char* argv[]) { '; '; a1='; //a2='2'; //a2是字符常量 "; "; a3="; //a4=& ...