incrond не выполняет пользовательский сценарий

Я пытался настроить автоматизированную обработку импортированных изображений и видео от digicam.

Пользовательский сценарий

me@mymachine ~ $ ll /home/me/scripts/autorename-avmedia-exif.sh 
-rwxr-xr-x 1 me me 603 Aug  7 22:50 /home/me/scripts/autorename-avmedia-exif.sh*

Содержание:

#!/bin/bash

# Argument
if [ $# -eq 1 ] ; then
    # Only one argument
    file=$1

else
    # No argument
    echo "Usage: $0 target-file"
    exit 1
fi

/bin/echo "$0 started" > /home/me/tmp/autorename.log

exiftool -overwrite_original_in_place -P '-filename<CreateDate' -d "%Y-%m-%d %H-%M-%S%%-c.%%le" "$file"

echo "exiftool returned: $?" >> /home/me/tmp/autorename.log

Полномочия Incron:

me@mymachine ~ $ sudo cat /etc/incron.allow
me
root

Часы Incron:

me@mymachine ~ $ incrontab -l
/home/me/Bilder/Import IN_CLOSE_WRITE /bin/bash /home/me/scripts/autorename-avmedia-exif.sh "$@/$#" > /home/me/tmp/autorename-avmedia-exif.log

Системный журнал:

Aug  7 22:36:26 mymachine incrond[1391]: (me) CMD (/bin/bash /home/me/scripts/autorename-avmedia-exif.sh "/home/me/Bilder/Import/DSC01037.JPG" > /home/me/tmp/autorename-avmedia-exif.log)

Проблема: Ничего не происходит. Сценарий не выполняется.

Когда копия past'ing строка из системного журнала в терминал, сценарий работает без проблемы.

Замена сценария звонит с touch /home/me/tmp/test.incron работы и тестовый файл создаются.

Таким образом, это должно быть проблемой охраны окружающей среды, но я уже снабдил префиксом вызов сценария /bin/bash и добавленные полные пути. Что еще отсутствует?

0
задан 7 August 2019 в 23:55

1 ответ

Спасибо waltinator для Вашей справки, это продвинуло меня в правильное направление.

я не знаю, какова проблема ранее была, но как только я добавил перенаправление вывода > /home/me/tmp/autorename-avmedia-exif.log, это не могло работать, вызвать incron, кажется, не знает об этом и передает эту часть сценарию как аргументы. Там мой сценарий перестал работать, поскольку он ожидает только один аргумент и еще не было никакого входа для случай.

Только, чтобы быть ясным: сценарий назвали успешно, но он вышел наверху, из-за неправильного количества аргументов.

я узнал это с помещением touch /home/me/incron#.test строки на всем протяжении сценария, в то время как # было число постепенного увеличения.

0
ответ дан 23 October 2019 в 06:52

Другие вопросы по тегам:

Похожие вопросы: