2016-12-26 7 views
0

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

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

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

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

#!/bin/bash -e 

#Script use to launch cron tasks 

set -e 

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

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

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

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

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

Ниже приводится выдержка из моего/вар/Журнал/хрон:

Dec 26 15:55:01 bf7fe8653ac9 CROND [658]: (тест) CMD (эхо "тото" >> /TMP/оболочки.

+0

'хрон-launcher.sh' нет оболочки, это Баш скрипт. – Cyrus

+0

Это правда, но я хочу заставить его «действовать» как оболочка –

+0

Или проще просто действовать как обертка между оболочкой –

ответ

0

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

КВС является то, что команда echo "toto" >> /tmp/shell.log от хрон

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

обрабатывается как $2 в оболочке cron-launcher.

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

#!/bin/bash 

#Script use to launch cron tasks 

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

#echo "$USER" >> /tmp/test.log 
COMMAND="$2" 
eval $COMMAND 
Смежные вопросы