问题标签 [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.
linux - 关于 incron 事件的精度
我目前正在学习一点incron。要了解我在 VM 上有一个正在工作的 incron,观察文件何时移动到受监视的文件夹中。
这是 incron :
所以它使用IN_CLOSE, IN_CLOSE_WRITE, IN_CLOSE_NOWRITE
事件。但是在阅读了 incron 文档之后,我看到了这个IN_MOVE_TO
事件。
为什么它适用于这 3 个事件?对我来说,这很脑残,因为我认为文件在移动时不会打开。
python - python readlines在incron期间不起作用
我正在尝试通过 incron 调用 python 脚本:
但我似乎无法从传递的文件中读取。这是脚本:
脚本生成的输出:
它似乎停止在 readlines() 调用。我在系统日志中看不到任何错误。
更新:似乎我可以cat
对文件使用子进程并检索内容。但是,当我解码它时,data.decode('utf-8')
我在变量中什么都没有。
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
关于我可能会错过什么的任何见解?
linux - 在 Linux 中移动可用文件
在 Centos 7 中,我使用 incrontab 跟踪 Samba 服务器上的文件夹。我想在创建此文件夹时将其复制到另一个文件夹。
在写入 Samba 服务器之前,我首先定义文件路径,软件将其直接复制到它在我指定的文件夹中创建的 incrontab。这会导致空数据。
我等待分析软件完成并期望之后复制文件。
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”的大量信息。
任何帮助是极大的赞赏!
incron - 问:incrond - SDTOUT 和 STDERR 去哪里了?
来自 cron 我确实知道 stdout/stderr 被邮寄给执行脚本的用户。但是 incron 似乎没有相同的功能。那么 stdout/stderr 去哪里了?
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:添加诊断(僵尸线程)
linux - 使用 incrontab mv 文件导致 0 字节文件
我正在使用 incrontab 和 incrontab -e 编辑器中的命令查看文件夹:
/media/pi/VDRIVE IN_CLOSE_WRITE sudo mv $@/$# /media/pi/VDRIVE/ready/$#
被监视的文件夹正在通过网络从另一台机器上释放一个文件——该文件显示正常,并且似乎在复制过程关闭文件后触发了 incrontab 作业,但 mv 命令导致目标文件夹中的文件为 0 字节用正确的名字。
全部以root身份运行。
linux - incrontab $@ 给出子目录而不是监视目录
/tmp/target_dir IN_MODIFY,IN_CREATE,IN_MOVED_TO /tmp/script.sh $@
script.sh 的内容
在执行
/tmp/script.log 的内容
在执行
/tmp/script.log 的内容
在这里,而不是被监视的目录,在其上完成工作的目录被回显。据我了解,这里$@ 用于显示监视的系统路径。
php - 用 incron 监视文件夹似乎会杀死我的服务器
每当文件夹中的内容发生更改(文件被编辑、覆盖、添加或删除)时,我想在文件夹上运行 php 脚本。
php 脚本获取文件夹中每个文件的哈希码,并将所有行写入hash.txt
文件中(为每个文件附加一行hashcode:filename
,例如2dbb8badb0925833c8ea03ffc941e3a0:file1_blabla.utf8
)。
将我的用户添加到后/etc/incron.allow
,我icrontab -e
在服务器中编辑了我的,并添加了以下行:
结果:某种杀手循环使我的服务器崩溃,日志不断增长,显示如下:
有小费吗?icrontab 对我想做的事情有好处吗?谢谢。