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

5次阅读

共计 1052 个字符,预计需要花费 3 分钟才能阅读完成。

文件监控能够配合 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…

正文完
 0