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

Я пишу сценарий и задаю его как задание cron. Но из-за различия переменных среды он не работает так, как должно быть.

В этом случае я немного изменил crontab -e и установил ближайшую минуту работы cron, и подождал следующей минуты, чтобы показать результат. Я чувствую, что это абсолютно абсурдный подход, но я не знаю, как это сделать.

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

Кто-нибудь знает как это делать?

2 Solutions collect form web for “Как запустить команду, как если бы она вызывается из cron”

Вот как это сделать: принудительное выполнение cron для использования вашей среды входа:

bash -lc "your_command"

Из руководства bash:

 -c string If the -c option is present, then commands are read from string. If there are arguments after the string, they are assigned to the positional parameters, starting with $0. -l Make bash act as if it had been invoked as a login shell (see INVOCATION below). 

INVOCATION (бит разделяется ):

Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с параметром –login, она сначала считывает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile, ~ / .bash_login и ~ / .profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения. Опция -noprofile может использоваться, когда оболочка начинает блокировать это поведение.

Чтобы узнать больше:

  • человек

Лучше всего использовать.

вот несколько примеров

  echo $PWD/script.sh | at now 

или

  echo "reboot" | at 5:00 

или

  echo "mail -s test user@host" | at now + 1 hour 

Вот несколько примеров даты / времени.

  • cron каждый X точный смысл
  • Как преодолеть эту ошибку при запуске скрипта в crontab?
  • Значение записи «* * / 1 * * *» cron?
  • сломанное задание cron после его редактирования
  • Команда crontab rtcwake не работает
  • Правильная капитализация «cron»
  • Cron, crontab -e читает неверный файл
  • Как я могу подать сигнал на задание cron, чтобы пропустить прогоны?
  • cron, каждую минуту
  • Разница между вкладками CRON 0/5 и * / 5?
  • Cron Job не работает
  • Linux и Unix - лучшая ОС в мире.