让incron inotify工作的麻烦

时间:2016-01-26 16:50:02

标签: linux centos filesystems incron

所以亚历克斯回答这里是我的步骤:

创建shell代码

root@ip[/]# touch mylog.sh
root@ip[/]# nano mylog.sh

复制mylog.sh中的代码

#!/bin/bash
echo "File $1 created." >> /mylog.log

许可

root@ip[/]# chmod +x mylog.sh

创建日志文件

root@ip[/]# touch mylog.log 

打开icron表

incrontab -e

将新命令放入

/test/ IN_CREATE mylog.sh $@$#

重新加载incron - 创建一个新文件 - 检查日志文件

root@ip[/]# incrontab --reload
requesting table reload for user 'root'...
request done

root@ip[/]# cd test
root@ip[/test]# touch newfile.txt

root@ip[/test]# cd /
root@ip[/]# nano mylog.log

但仍然是空的日志文件...我错过了什么?

最后用完整路径调用shell脚本就可以了 所以:

/test/ IN_CREATE /mylog.sh $@$#

1 个答案:

答案 0 :(得分:2)

您通常可以在 / var / log / messages

中找到incron日志

如果要将事件记录到特定文件,可以使用:

/test/ IN_CREATE mylog.sh $@$#

其中mylog.sh是一个处理日志记录的shell脚本。

#!/bin/bash
echo "File $1 created." >> /home/myuser/filescreated.log

不要忘记通过chmod + x mylog.sh

为此shell脚本授予执行权限

说明: 一旦开始使用您正在调用的命令的参数,就必须将它全部放入shell脚本中。由于incron不会将参数传递给您的命令,而是将其解释为自身的参数。

更改incrontab后,不要忘记调用incrontab --reload。

另一个例子

incrontab -e

/text/ IN_CREATE /home/myuser/mylog.sh $@ $#

mylog.sh

#!/bin/bash
echo "$(date) File $2 in $1 created." >> /home/myuser/log.txt