Как хранить переменные в моем crontab? Я понимаю, что это не оболочка, но скажу, что я хочу иметь некоторые константы, такие как путь к моему приложению или что-то в этом роде?
Мысли?
Как хранить переменные в моем crontab? Я понимаю, что это не оболочка, но скажу, что я хочу иметь некоторые константы, такие как путь к моему приложению или что-то в этом роде?
Мысли?
В Vixie cron, который, возможно, наиболее распространен, вы можете сделать это почти так же, как оболочка script.
VARIABLE=value
PATH=/bin:/path/to/doathing
0 0 * * * doathing.sh $VARIABLE
На странице руководства написано:
Активная строка в crontab будет либо средой, либо командой cron. Настройка окружения имеет вид,
name = value
где пробелы вокруг знака равенства (=) являются необязательными, а любые последующие непереходящие пробелы в значении будут частью присвоенного значения назвать. Строка значений может быть помещена в кавычки (одиночные или двойные, но соответствующие), чтобы сохранить ведущие или завершающие пробелы. Имя Строка также может быть помещена в цитату (одиночный или двойной, но соответствующий), чтобы сохранить ведущие, конечные или внутренние пробелы.
Вы можете узнать, есть ли у вас Vixie cron, проверив страницу руководства для crontab
; автором будет Пол Викси. Различные клоны могут или не могут поддерживать это (например, BusyBox cron), и в этом случае ваш лучший вариант - обернуть свою команду в оболочку script и запустить ее script из cron. На самом деле, это хорошая вещь для чего-то сложного.
Вы можете поместить переменные среды в crontab. Подробнее см. Справочную страницу crontab(5)
.
Я не очень разбираюсь в unix-парне, поэтому я не могу сказать ничего определенного, но это звучит как хорошее место для этапа предварительного процесса.
#define cmdpath /usr/bin/myfolder/cmd
0,30 8-17 * * 1-5 cmdpath
17 3 * * 1 cmdpath
работает, что через мой препроцессор компилятора С++ дает:
0,30 8-17 * * 1-5 /usr/bin/myfolder/cmd
17 3 * * 1 /usr/bin/myfolder/cmd
Это похоже на то, что вы хотели.