📜  Linux 中的 Incron 命令与示例

📅  最后修改于: 2022-05-13 01:57:33.912000             🧑  作者: Mango

Linux 中的 Incron 命令与示例

Incron 是一个“inotify cron”系统。它的工作方式与常规 cron 非常相似,但是,cron 作业是由某个时刻触发的(每周日,每天上午 12 点等),而 incron 作业由文件系统事件(例如创建、删除或修改文件或目录)。以下是一些可以使用incron 的示例:

  • 监控文件使用和统计
  • 如果在配置文件中进行了更改,则通知程序(例如服务器守护程序)。
  • 防止关键文件的更改。
  • 自动更改备份或版本控制。
  • 处理上传的文件。

注意:由于 incron 不是递归的,因此您还必须添加您希望它查看的所有子目录。不要在您监视的目录中的 incron 作业中执行任何操作以避免循环。

安装和配置 Incron:

使用以下命令安装 incron。

$sudo apt-get install incron

配置:要配置 incron 访问,我们必须配置/etc/incron.allow/etc/incron.deny文件。

  • /etc/incron.allow :如果此文件存在,则只有此处列出的用户可以使用 incron。
  • /etc/incron.deny :如果此文件存在,则只有此处未列出的用户可以使用 incron。

如果这些文件都不存在,系统上的每个用户都可以使用 incron。



句法:

    

在这里

  • 是要观看的目录的绝对路径。
  • 是事件掩码(符号或数字形式)。
  • 是带有参数的可执行文件(或脚本)。

设置 Incron

安装和配置完成后,您需要使用以下命令启动 incron 守护进程:

$ /etc/init.d/incrond start
        OR
$ systemctl start incron.service

您可以使用以下方法检查 incron 状态:

$ systemctl status incron.service

检查 incron 状态
现在您必须将您的用户或 root 添加到/etc/incron.allow配置中。文件,以便该用户可以访问corntab。

$ sudo nano /etc/incron.allow

使用 incrontab 命令,您可以列出 (-l)、编辑 (-e) 和删除 (-r) incrontab 条目。

$ incrontab -l
$ incrontab -e
$ incrontab -r

监控文件

假设,我们想要监视一个文件( /tmp/gfg/myfile.txt ),并且对于每次更改,我们想要将修改的日期和时间记录到日志文件( /tmp/logs/mylogs.txt )中。



1. “myfile.txt”的内容如下所示。
内容展示

2.创建一个名为“ action.sh ”的脚本,将日期和时间记录到日志文件中,我们将在每次更改 myfile.txt 时运行此脚本。

日志记录脚本

3.现在您可以使用命令编辑 crontab。

$ crontab -e:

编辑 crontab
编辑 crontab

4.现在让我们对 myfile.txt 进行更改。

更改文件

5.如果我们看到日志,我们可以看到更改的日期和时间。

监视日志

监控目录

现在让我们监视目录( /tmp/gfg/ ),对于每个新文件/目录,我们将创建的日期和时间记录到日志文件( /tmp/logs/mylogs.txt )中。



1.打开 incrontab 文件。这里我们在命令中传递“ $# ”通配符,它将事件相关的文件名传递给命令。

为日志打开文件

为日志打开文件

2.我们将更新action.sh。这里我们使用作为参数传递的“$#”通配符。

更新-action.sh

3.现在让我们通过在 gfg 目录中创建一个新文件来尝试一下,并在日志文件中查看结果:

结果在日志文件-incron