Проблема получения incron inotify для работы
поэтому после ответа alex вот мои шаги:
создание кода оболочки
[email protected][/]# touch mylog.sh
[email protected][/]# nano mylog.sh
копирование кода в mylog.sh
#!/bin/bash
echo "File $1 created." >> /mylog.log
разрешение
[email protected][/]# chmod +x mylog.sh
создание файла журнала
[email protected][/]# touch mylog.log
открытие таблицы icron
incrontab -e
ввод новой команды в
/test/ IN_CREATE mylog.sh [email protected]$#
перезагрузка incron - создание нового файла - проверка файла журнала
[email protected][/]# incrontab --reload
requesting table reload for user 'root'...
request done
[email protected][/]# cd test
[email protected][/test]# touch newfile.txt
[email protected][/test]# cd /
[email protected][/]# nano mylog.log
но все еще пустой файл журнала... я что-то пропустил?
наконец, вызов оболочки script с полным путем сделал трюк
так:
/test/ IN_CREATE /mylog.sh [email protected]$#
Ответы
Ответ 1
Обычно вы можете найти журналы incron в /var/log/messages
Если вы хотите регистрировать события в определенном файле, вы можете использовать:
/test/ IN_CREATE mylog.sh [email protected]$#
где mylog.sh - это оболочка script, которая обрабатывает журнал.
#!/bin/bash
echo "File $1 created." >> /home/myuser/filescreated.log
Не забудьте предоставить разрешение на выполнение этой оболочки script по chmod + x mylog.sh
Объяснение:
Как только вы начнете использовать параметры для своей команды, которую вы вызываете, вы должны поместить все это в оболочку script. Поскольку incron не передает аргументы вашей команде, но интерпретирует ее как аргумент для себя.
Не забудьте вызвать incrontab - reload после изменения incrontab.
Другой пример
incrontab -e
/text/ IN_CREATE /home/myuser/mylog.sh [email protected] $#
mylog.sh
#!/bin/bash
echo "$(date) File $2 in $1 created." >> /home/myuser/log.txt