Crontab пользовательская оболочка выполнить cron

Я хочу, чтобы моя команда cron выполнялась из пользовательской оболочки следующим образом:

SHELL=/bin/cron-launcher.sh
* * * * * test  echo "toto" >> /tmp/shell.log

Проблема в том, что файл / tmp / shell.журнал пуст, если я указываю свою собственную оболочку.

Содержимое моей пользовательской оболочки выглядит следующим образом:

#!/bin/bash -e

#Script use to launch cron tasks

set -e

SHELL="/bin/bash -e"
LOGDIR="/var/log/cronlauncher/"

echo "$USER" > /tmp/test.log

Пользователь, используемый для запуска cron, очень хорошо выводится в файл / tmp / test.войти, но команда cron echo "toto"из cron никогда не выводится в файл /tmp/shell.log.

Как сделать так, чтобы пользовательская оболочка выполняла команду cron правильно.

То есть сделать cron-launcher.shтак, чтобы скрипт действовал как обертка.

Ниже приводится выдержка из my /var / log / cron:

Dec 26 15: 55: 01 BF7FE8653AC9 CROND[658]: (test) CMD (echo «toto» >>>
/ tmp / shell.

1 ответ

  1. Проблема была решена путем выполнения 2-го аргумента, проанализированного в оболочке cron-launcher.sh

    The fac is that the command echo "toto" >> /tmp/shell.logfrom the cron

    SHELL=/bin/cron-launcher.sh
    * * * * * test echo "toto" >> /tmp/shell.log

    разбирается как в оболочке cron-launcher.

    Поэтому я просто должен был изменить свой код следующим образом:

    #!/bin/bash
    
    #Script use to launch cron tasks
    
    SHELL="/bin/bash"
    LOGDIR="/var/log/cronlauncher/"
    
    #echo "$USER" >> /tmp/test.log
    COMMAND=""
    eval $COMMAND