inotify-tools

2020-12-09-Linux监控指定目录下的文件变化

十年热恋 提交于 2020-12-10 11:17:26
yum install epel-release -y yum install inotify-tools -y vi monitor_dircharge.sh #!/bin/sh ## ------------------------------------------------- ## @监控目录状态,有变化后触发授权指令 ## ------------------------------------------------- srcdir="xxx" /usr/bin/inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T%w%f' -e modify,delete,create,attrib,move ${srcdir} \ | while read file do sudo chmod -R 755 ${srcdir} done chmod 755 /dir #后台运行 ./monitor_dircharge.sh & 参考链接: https://www.cnblogs.com/fjping0606/p/6114123.html 来源: oschina 链接: https://my.oschina.net/u/4383141/blog/4784803

rsync + inotify 实时同步

南楼画角 提交于 2020-11-08 18:58:49
1. 前言   2 台 nginx 需要做集群, 静态文件和php文件都在nginx服务器本地。   有三种方案:     (1)NFS     (2)Rsync + inotify     (3)共享存储服务器   第一种:当 nfs server端宕机,全部完蛋,第三种:共享存储服务器单点,如果宕机也完蛋。因此采用 第二种方式:rsync + inotify 2. 环境配置   2.1 环境介绍   系统:Centos 7.2 x64   server端:192.168.118.14   client端(同步端):192.168.118.15   2.2 搭建过程   默认防火墙和selinux 关闭,这里采用 http web服务器测试。    client 端(同步端)配置: [root@ 192.168 . 118.15 ~]# yum install rsync httpd - y [root@ 192.168 . 118.15 ~]# egrep ^[a-z] /etc/ rsyncd.conf uid = root # 设置rsync运行权限为root gid = root # 设置rsync运行权限为root use chroot = no # 默认为true,修改为no,增加对目录文件软连接的备份 max connections = 200 # 最大连接数

Linux下同步工具inotify+rsync使用详解

强颜欢笑 提交于 2020-08-16 03:43:28
1. rsync 1.1 什么是rsync rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。它使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。所以通常可以作为备份工具来使用。 运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据;也可以多个Rsync server备份一个client的数据。Rsync可以搭配ssh甚至使用daemon模式。Rsync server会打开一个873的服务通道(port),等待对方rsync连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。 基本特点: 可以镜像保存整个目录树和文件系统; 可以很容易做到保持原来文件的权限、时间、软硬链接等; 无须特殊权限即可安装; 优化的流程,文件传输效率高; 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接; 支持匿名传输。 命令语法: rsync的命令格式可以为以下六种:  rsync [OPTION]… SRC DEST  rsync [OPTION]… SRC

linux使用Inotify监控目录或者文件状态变更

喜你入骨 提交于 2020-04-10 14:38:34
基本概念: Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。 需求: 1.有一个文件采集进程,需要对日志文件进行采集,日志文件可能会被删除,可能会被移动。 2.我们都知道文件一旦被删除或者移动,那么进程使用原有打开的文件fd就无法继续读取文件数据。 3.那么就需要监控文件的创建,移动,删除等状态,以便重新打开文件,所以需要使用Inotify来做这件事。 源码inotfy.c #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/inotify.h> #include <unistd.h> #define EVENT_NUM 12 char *event_str[EVENT_NUM] = { "IN_ACCESS", "IN_MODIFY", //文件修改 "IN_ATTRIB", "IN_CLOSE_WRITE", "IN_CLOSE_NOWRITE", "IN_OPEN", "IN_MOVED_FROM", //文件移动from "IN_MOVED_TO", //文件移动to "IN_CREATE", //文件创建 "IN_DELETE", //文件删除 "IN_DELETE

inotify script runs twice?

混江龙づ霸主 提交于 2019-12-12 04:33:25
问题 I'm using inotify-tools ( inotifywait ) on CentOS 7 to execute a php script on every file creation. When I run the following script: #!/bin/sh MONITORDIR="/path/to/some/dir" inotifywait -m -r -e create --format '%w%f' "${MONITORDIR}" | while read NEWFILE do php /path/to/myscript.php ${NEWFILE} done I can see there are 2 processes: # ps -x | grep mybash.sh 27723 pts/4 S+ 0:00 /bin/sh /path/to/mybash.sh 27725 pts/4 S+ 0:00 /bin/sh /path/to/mybash.sh 28031 pts/3 S+ 0:00 grep --color=auto mybash

Gaining better performance with inotify-tools and unison.

让人想犯罪 __ 提交于 2019-12-07 11:58:49
问题 I use inotify-tools and unison to synchronize folders between machines. Because I have a large folder to synchronize, I just simply write an inotifywait script to do the job automatically. Is it sensible to let inotifywait to monitor the subdirectories of the large folder to gain a better performance? 回答1: You should get better performance if you ditch inotify-tools and just use unison's native support for watching your folders for changes. By using inotify-tools and then calling unison when

Gaining better performance with inotify-tools and unison.

不羁岁月 提交于 2019-12-05 21:37:26
I use inotify-tools and unison to synchronize folders between machines. Because I have a large folder to synchronize, I just simply write an inotifywait script to do the job automatically. Is it sensible to let inotifywait to monitor the subdirectories of the large folder to gain a better performance? You should get better performance if you ditch inotify-tools and just use unison's native support for watching your folders for changes. By using inotify-tools and then calling unison when a change occurs, unison has to " re-find " the change before it syncs. You could instead add the line repeat

Linux服务器间文件实时同步的实现

孤街醉人 提交于 2019-12-01 11:44:11
使用场景 现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home/paul/rsync/ )。 数据镜像备份工具Rsync Rsync是一个非常快速和灵活的文件复制工具。它支持本机或者是和远程服务器间的文件复制。Rsync使用了delta-transfer算法,它只需要传送源端和目标端的文件差异部分,大大减少了网络带宽的消耗和复制耗费的时间。Rsync多用于数据备份和镜像。 Rsync使用了快速检查算法,通过比较文件大小或最后修改时间的变化来判断文件是否需要同步。 Rsync连接远程主机有两种方式:使用ssh或rsync daemon。这里使用Rsync方式来实现远程文件备份。 Rsync的安装与操作 安装Rsync 分别在服务器A和服务器B的terminal执行: sudo yum install rsync 安装完毕后,会发现rsync的配置文件位于 etc/rsyncd.conf 。该文件使用daemon方式同步时需要使用,此处暂不介绍。 配置服务器A和B之间的免密登录 服务器A执行: ssh-keygen ssh-copy-id 服务器B的IP地址 创建源端目录和目标端目录 在服务器A中: mkdir /home/paul/rsync

how to achieve linux's inotify-tools shell methods on osx

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-30 07:22:01
To monitor a file in linux, I can use inotify-tools like this #!/bin/bash # with inotify-tools installed, watch for modification of file passed as first param while inotifywait -e modify $1; do # do something here done but how would I achieve this in OSX? Peter Sankauskas If you want to wrap this into a Python script, you can use Watchdog, which works with both Linux and OSX. https://pypi.python.org/pypi/watchdog Here is what it looks like to replace pyinotify with watchdog: https://github.com/raphdg/baboon/commit/2c115da63dac16d0fbdc9b45067d0ab0960143ed Watchdog also has a shell utility

how to achieve linux's inotify-tools shell methods on osx

橙三吉。 提交于 2019-11-29 10:26:16
问题 To monitor a file in linux, I can use inotify-tools like this #!/bin/bash # with inotify-tools installed, watch for modification of file passed as first param while inotifywait -e modify $1; do # do something here done but how would I achieve this in OSX? 回答1: If you want to wrap this into a Python script, you can use Watchdog, which works with both Linux and OSX. https://pypi.python.org/pypi/watchdog Here is what it looks like to replace pyinotify with watchdog: https://github.com/raphdg