无法让 incron inotify 工作
trouble getting incron inotify to work
所以在 alex 回答之后,这是我的步骤:
正在创建 shell 代码
root@ip[/]# touch mylog.sh
root@ip[/]# nano mylog.sh
复制 mylog.sh
中的代码
#!/bin/bash
echo "File created." >> /mylog.log
权限
root@ip[/]# chmod +x mylog.sh
正在创建日志文件
root@ip[/]# touch mylog.log
打开 icron table
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 $@$#
您通常可以在 /var/log/messages
中找到 incron 日志
如果您想将事件记录到特定文件中,您可以使用:
/test/ IN_CREATE mylog.sh $@$#
其中 mylog.sh 是处理日志记录的 shell 脚本。
#!/bin/bash
echo "File 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 in created." >> /home/myuser/log.txt
所以在 alex 回答之后,这是我的步骤:
正在创建 shell 代码
root@ip[/]# touch mylog.sh
root@ip[/]# nano mylog.sh
复制 mylog.sh
中的代码#!/bin/bash
echo "File created." >> /mylog.log
权限
root@ip[/]# chmod +x mylog.sh
正在创建日志文件
root@ip[/]# touch mylog.log
打开 icron table
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 $@$#
您通常可以在 /var/log/messages
中找到 incron 日志如果您想将事件记录到特定文件中,您可以使用:
/test/ IN_CREATE mylog.sh $@$#
其中 mylog.sh 是处理日志记录的 shell 脚本。
#!/bin/bash
echo "File 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 in created." >> /home/myuser/log.txt