【问题标题】:Bash script to monitor new created directories用于监视新创建的目录的 Bash 脚本
【发布时间】:2017-03-20 10:32:26
【问题描述】:

任何人都可以提供指点或想法。

我有一个服务器,它正在运行 rsync 并将其他服务器备份到不同的文件夹上,每天按日期创建新文件夹,例如(2017-03-20)。 我想创建一个 bash 脚本,通过检查创建的文件夹检查这些备份是否已运行,然后如果所有备份都成功,脚本将通过在另一个文件夹 /Z 中写入文本文件来确认,该文本文件格式为 20- 20 年 3 月 17 日。如果任何备份失败,脚本应该退出而不创建文件。

重点是,我将编写一个 nagios 插件脚本,每天检查此文本文件并将结果发送到 Nagios。

欢迎提出任何想法。

【问题讨论】:

  • 您可以监控主文件夹的修改,例如使用 inotify 工具创建新的子文件夹 - 谷歌它(inotify 监控文件夹)

标签: linux bash shell rsync nagios


【解决方案1】:

首先添加epel repo -

sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

然后安装 inotify-tools -

sudo yum install inotify-tools

编写一个脚本运行并无限循环监视特定目录(您希望备份脚本生成目录的位置)。

#!/bin/sh

while true
do 

inotifywait -r -e modify,create,delete /<directory> && /bin/sh <script_confirming _backup>

done

-e 标志检查提到的事件。您可以根据您的监控要求添加事件。 -r 标志将递归查找上述目录下的所有目录和子目录。

【讨论】:

  • 感谢您提供的信息,如果我有多个文件夹,例如 /d、/e、/w,我是否可以让 inotify 监视器检查所有 3 个文件夹,如果有则只写入确认文件已对所有 3 个文件夹进行了更改。在 1 或 2 个文件夹发生更改的情况下,脚本不得写入文件。
  • 在这种情况下,您需要通过脚本确保所有三个文件夹中都发生更改(使用 && 条件运算符),然后只运行您保留的备份脚本。自己尝试一次。如果您无法弄清楚,请在此处发表评论。
  • 感谢您的帮助。我被告知使用 php 而不是 bash,而不是使用 inotify 监视器。所以我重新开始使用 php。
  • 如果您发现它在任何情况下都有帮助,请提出投票请求 :)
猜你喜欢
  • 1970-01-01
  • 2014-06-16
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多