关于运维:如何用-Shell-监控文件变化

文件监控能够配合rsync实现文件主动同步,例如监听某个目录,当文件变动时,应用rsync命令将变动的文件同步。(可用于代码主动公布)

实现文件主动同步,例如监听某个目录,当文件变动时,应用rsync命令将变动的文件同步。(可用于代码主动公布)。

inotify 是linux内核的一个个性,在内核 2.6.13 以上都能够应用。

如果在shell环境下,能够装置 yum install inotify-tools,装置当前有两个命令能够用inotifywait 和 inotifywatch,inotifywait 是须要应用的命令。

监听/usr/local/src 目录:

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M'
--format '%T %w %f %e' -e modify,delete,create,attrib 
/usr/local/src

参数:

  • -m 继续监听
  • -r 应用递归模式监督目录
  • -q 缩小冗余信息,只打印出须要的信息
  • -e 指定要监督的事件,多个工夫应用逗号隔开
  • –timefmt 工夫格局
  • –format 监听到的文件变动的信息
  • –timefmt 阐明:
  • ymd别离示意年月日,H示意小时,M示意分钟

–format阐明:执行下面的命令之后,在监听的目录下创立一个1.txt文件,失去如下后果:

22/03/18 17:22 /usr/local/src/ 1.txt CREATE
22/03/18 17:22 /usr/local/src/ 1.txt ATTRIB

这个脚本的性能是循环监听文件或目录的增删改事件,当事件产生执行设置的脚本文件。

#!/bin/sh
  # 监督的文件或目录
  filename=$1
  # 监督发现有增、删、改时执行的脚本
  script=$2
  inotifywait -mrq --format '%e' --event create,delete,modify  $filename | while read event
  do
      case $event in MODIFY|CREATE|DELETE) bash $script ;;
      esac
  done

shell脚本后盾执行

nohup

应用nohup,其中test.sh为所执行的脚本,out.txt为输入信息的中央。

nohup sh test.sh>out.txt &

起源:https://www.cnblogs.com/youxi…

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理