麻烦得到incotify工作

所以在alex回答这里是我的步骤:

创buildshell代码

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 

创build日志文件

 root@ip[/]# touch mylog.log 

打开icron表

 incrontab -e 

把新的命令

 /test/ IN_CREATE mylog.sh $@$# 

重新加载incron – 创build一个新文件 – 检查日志文件

 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 

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


最后用完整path调用shell脚本就这样做了:

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

您通常可以在/ 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