То, как моделировать крон среды, выполняет сценарий с?

У меня обычно есть несколько проблем с тем, как крон выполняет сценарии, поскольку у них обычно нет моей установки среды. Существует ли способ вызвать удар (?) таким же образом, крон делает так, я мог сценарии тестирования прежде, чем установить их?

246
задан Jorge Vargas 7 April 2010 в 10:24
поделиться

7 ответов

Добавьте это в свой cron:

30 08 * * * env > ~/cronenv

После запуска сделайте следующее:

env - `cat ~/cronenv` /bin/sh

Это предполагает, что ваш cron запускает /bin/sh, который является стандартным независимо от стандартной оболочки пользователя.

376
ответ дан 23 November 2019 в 03:04
поделиться

Вы можете запустить:

env - your_command arguments

Это запускает your_command с пустой средой.

22
ответ дан 23 November 2019 в 03:04
поделиться

Создайте задание CRON, которая запускает ENV и перенаправляет STDOUT в файл. Используйте файл рядом с «env -», чтобы создать ту же среду, что и работа CRON.

10
ответ дан 23 November 2019 в 03:04
поделиться

Я не верю, что есть; Единственный способ, которым я знаю, чтобы проверить работу CRON, состоит в том, чтобы настроить его, чтобы запускать минуту или два в будущем, а затем подождать.

-8
ответ дан 23 November 2019 в 03:04
поделиться

CRON обеспечивает только эту среду по умолчанию:

  • Главная Домашний каталог пользователя
  • Логин пользователя Вход пользователя
  • Путь = / usr / bin: / usr / SBIN
  • Shell = / usr / bin / sh

Если вам нужно больше, вы можете источник скрипта, в котором вы определяете свою среду перед таблицей планирования в Crontab.

61
ответ дан 23 November 2019 в 03:04
поделиться

Не забывайте, что поскольку родитель CRON - это init, он запускает программы без контролирующего терминала. Вы можете имитировать, что с таким инструментом:

http://libslack.org/daemon/

3
ответ дан 23 November 2019 в 03:04
поделиться

По умолчанию cron выполняет свои задания, используя любую идею вашей системы о sh есть. Это может быть фактическая оболочка Bourne или dash , ash , ksh или bash (или другой) с символической ссылкой на sh (и в результате работает в режиме POSIX).

Лучше всего убедиться, что в ваших сценариях есть все, что им нужно, и предположить, что для них ничего не предусмотрено. Следовательно, вам следует использовать полные спецификации каталогов и самостоятельно устанавливать переменные среды, такие как $ PATH .

2
ответ дан 23 November 2019 в 03:04
поделиться
Другие вопросы по тегам:

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