Проблема получения 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