Вывод очереди LSF в задаче crontab

У меня есть сценарий bash, который отслеживает задания в кластере на основе вывода команды системы очередей LSF «bqueues». Скрипт работает нормально. Теперь я хотел создать запись в crontab, которая вызывает этот скрипт. Проблема в том, что все, что связано с bqueues, вообще не выводит, в чем может быть причина?


person Open the way    schedule 16.06.2011    source источник


Ответы (1)


  1. Задания Cron не наследуют среду входа пользователя. В частности, переменные среды, установленные в .login или .profile и т. д., будут просто недоступны. Абсолютная единственная наиболее распространенная причина сбоя заданий cron заключается в том, что параметр PATH не соответствует тому, что предполагал автор сценария.
  2. Задания Cron не имеют связанного с ними стандартного ввода. Хотя cron не будет выполнять .login/.profile пользователя, он запустит оболочку в обычном режиме, что приведет к выполнению файла запуска оболочки (.cshrc, .bashrc и т. д.). Также некоторые команды, используемые в cronjob, могут полагаться на наличие терминала. Например, если вы пытаетесь запустить vi в пакетном режиме, не делайте этого. Вместо этого замените его на ed или sed.
  3. Выходные данные задания Cron будут отправлены по почте Unix владельцу crontab.
  4. Разрешения на самом crontab. Многие реализации cron даже не будут просматривать crontab, если права доступа к файлу установлены неправильно. Как правило, разрешения должны быть очень жесткими - только чтение/запись для владельца и НЕТ разрешений для группы или других лиц.
  5. сравните среды, выдав env из оболочки и crontab.
  6. ...

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

person Fredrik Pihl    schedule 16.06.2011
comment
да, вывод из env отличается как в bash, так и в cron. в любом случае, чтобы я передал все переменные среды bash в cron? - person Open the way; 17.06.2011