问题标签 [incron]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
204 浏览

linux - 关于 incron 事件的精度

我目前正在学习一点incron。要了解我在 VM 上有一个正在工作的 incron,观察文件何时移动到受监视的文件夹中。

这是 incron :

所以它使用IN_CLOSE, IN_CLOSE_WRITE, IN_CLOSE_NOWRITE事件。但是在阅读了 incron 文档之后,我看到了这个IN_MOVE_TO事件。

为什么它适用于这 3 个事件?对我来说,这很脑残,因为我认为文件在移动时不会打开。

0 投票
1 回答
76 浏览

python - python readlines在incron期间不起作用

我正在尝试通过 incron 调用 python 脚本:

但我似乎无法从传递的文件中读取。这是脚本:

脚本生成的输出:

它似乎停止在 readlines() 调用。我在系统日志中看不到任何错误。

更新:似乎我可以cat对文件使用子进程并检索内容。但是,当我解码它时,data.decode('utf-8')我在变量中什么都没有。

0 投票
2 回答
1436 浏览

linux - Incrontab 输出到文件不起作用

我已经设置了一个 incrontab 规则来对添加到我的 ubuntu 盒子上特定目录的文件做出反应,并运行一个脚本。这很好用,但我的目标是将该脚本的输出打印到文件中。

我尝试了几种不同的方法来解决它,到目前为止,我能够让它工作的唯一方法是获取 incrontab 创建的生成命令,然后自己运行它。所以我的想法是它是可能的,我可能只是错过了一些对于经验丰富的 linux 用户来说显而易见的东西。

为了简洁起见,我缩短了一些命令。“watchdir” “scriptPath” 和 “arg1” 都是路径。我在脚本中引入了两个参数,arg1 和来自 cron 作业的文件名通配符。

我试过了:(这些运行脚本,但不输出到文件)

watchdir IN_CREATE scriptPath arg1 $# >> /home/ubuntu/logs/log-$# 2>&1

watchdir IN_CREATE scriptPath arg1 $# &>> /home/ubuntu/logs/log-$#

(这些什么都不做)

watchdir IN_CREATE /bin/bash scriptPath arg1 $# >> /home/ubuntu/log/log-$# 2>&1

watchdir IN_CREATE /bin/bash scriptPath arg1 $# &>> /home/ubuntu/log/log-$#

如果我运行 'tail /var/log/syslog' 并获取从下面的 incrontab 生成的命令并将其粘贴到 shell 中,它可以正常工作

watchdir IN_CREATE scriptPath arg1 $# &>> /home/ubuntu/logs/log-$#

这有效

scriptPath arg1 任务-LHPUQ7ezcF0s0UwVgUR.txt &>> /home/ubuntu/logs/log-mission-LHPUQ7ezcF0s0UwVgUR.txt

关于我可能会错过什么的任何见解?

0 投票
0 回答
62 浏览

linux - 在 Linux 中移动可用文件

在 Centos 7 中,我使用 incrontab 跟踪 Samba 服务器上的文件夹。我想在创建此文件夹时将其复制到另一个文件夹。

在写入 Samba 服务器之前,我首先定义文件路径,软件将其直接复制到它在我指定的文件夹中创建的 incrontab。这会导致空数据。

我等待分析软件完成并期望之后复制文件。

0 投票
0 回答
196 浏览

bash - Ubuntu 上的 incron - incrontab 调用的 bash 脚本 - 美元括号 $(command) 命令替换失败

我有一个 bash 脚本可以从命令行正常运行,但是当从incrontab调用它时,替换失败。脚本运行,但 $(...) 中的命令失败:(

我的 incrontab -e :

在我的脚本(notify.sh)中:

我的日志文件的内容如下所示:

泳装要求是

..

传入的inquiry.txt文件示例:

要求 1 - 泳装 - 蓝色 - 白天 - 非正式

要求 2 - 礼服 - 黑色 - 夜间 - 正式

..

从 incron.conf 设置 PATH 和 SHELL 似乎没有什么不同。

我也尝试过这样的变化:

我能想到的每一种组合:

..以及单引号、双引号、无引号等的无穷组合......以及指定 grep PATH:

(等等)......有几篇文章涉及为 cron 作业、crontab 等设置和/或指定 PATH 和 SHELL,但我没有看到关于“incrontab”的大量信息。

任何帮助是极大的赞赏!

0 投票
1 回答
128 浏览

incron - 问:incrond - SDTOUT 和 STDERR 去哪里了?

来自 cron 我确实知道 stdout/stderr 被邮寄给执行脚本的用户。但是 incron 似乎没有相同的功能。那么 stdout/stderr 去哪里了?

0 投票
1 回答
915 浏览

linux - 仅当脚本退出代码为 1 时才退出带有 shell 脚本的 incrond 进程?

配置

我在 CentOS 7.6 上的 incrond 0.5.12 配置如下/etc/incron.d/example

/var/tmp/dir IN_CREATE sh /root/incron_script.sh $@/$#

我的/root/incron_script.sh只是包含以下内容:echo "$@" >> /tmp/incrond_log.log

这意味着,当我在 中创建文件时var/tmp/dir,文件完整路径将附加到/tmp/incrond_log.log. 而已。

问题定义

问题基本上是,如果将 incrond 配置为调用 shell 脚本,则正在创建进程并且不会停止进程,除非该 shell 脚本以 0 以外的值退出。我正在查看的是systemctl status incrond(或ps aux | grep ...,相同的事物)。

因此,例如,下面有 2 个创建的进程。

测试

我们创建了 5 个文件,检查它们的名称是否附加到日志中(incrond 正在工作)并检查产生了多少进程。

预期结果

我希望 incrond 为在该目录中创建的每个文件派生一个进程,但之后立即退出,因为实际上并没有太多可做的事情。如果日志显示文件路径在日志文件中,这意味着 incrond 进程应该已经停止,因为它完成了它的工作。默认情况下,有 2 个进程systemctl status incrond,因此该命令的预期结果是:

实际结果

实际结果是:

诊断

问题表现为僵尸进程:

这是我可以检查的。我不知道如何进一步调查。

修复

如果不是常规退出,而是 I exit 1,进程正确退出。所以我的/root/incron_script变成:echo "$@" >> /tmp/incrond_log.log && exit 1。我现在的状态如下:

问题

那么这是预期的行为吗?为什么出口 0 使进程保持活动状态,而出口 1 不保持活动状态?这是在哪里记录的?关于如何进一步调试的任何建议?

更新

  • 2018-12-12:添加诊断(僵尸线程)
0 投票
1 回答
206 浏览

linux - 使用 incrontab mv 文件导致 0 字节文件

我正在使用 incrontab 和 incrontab -e 编辑器中的命令查看文件夹:

/media/pi/VDRIVE IN_CLOSE_WRITE sudo mv $@/$# /media/pi/VDRIVE/ready/$#

被监视的文件夹正在通过网络从另一台机器上释放一个文件——该文件显示正常,并且似乎在复制过程关闭文件后触发了 incrontab 作业,但 mv 命令导致目标文件夹中的文件为 0 字节用正确的名字。

全部以root身份运行。

0 投票
1 回答
170 浏览

linux - incrontab $@ 给出子目录而不是监视目录

/tmp/target_dir IN_MODIFY,IN_CREATE,IN_MOVED_TO /tmp/script.sh $@

script.sh 的内容

在执行

/tmp/script.log 的内容

在执行

/tmp/script.log 的内容

在这里,而不是被监视的目录,在其上完成工作的目录被回显。据我了解,这里$@ 用于显示监视的系统路径。

0 投票
1 回答
123 浏览

php - 用 incron 监视文件夹似乎会杀死我的服务器

每当文件夹中的内容发生更改(文件被编辑、覆盖、添加或删除)时,我想在文件夹上运行 php 脚本。

php 脚本获取文件夹中每个文件的哈希码,并将所有行写入hash.txt文件中(为每个文件附加一行hashcode:filename,例如2dbb8badb0925833c8ea03ffc941e3a0:file1_blabla.utf8)。

将我的用户添加到后/etc/incron.allow,我icrontab -e在服务器中编辑了我的,并添加了以下行:

结果:某种杀手循环使我的服务器崩溃,日志不断增长,显示如下:

有小费吗?icrontab 对我想做的事情有好处吗?谢谢。