2016-07-07 2 views
1

В настоящее время я выполняю задание cron, чтобы запланировать мой скрипт оболочки через определенный интервал, но я не могу видеть, как выполняется выполнение сценария оболочки и журнал, как я могу его увидеть. БлагодаряКак увидеть выполнение сценария оболочки с помощью Cronjob

ответ

3

Вы можете использовать знак перенаправления (>) для того, чтобы перенаправить stdout и/или stderr в лог-файл.

Например:

0 0 * * * /path/to/shell-script.sh > /tmp/shell-script.log 2>&1

Где:

  • 0 0 * * * означает, что скрипт будет работать каждый день в полночь
  • /path/to/shell-script.sh - путь сценария
  • > средства перенаправлять поток в файл, за которым следует переадресация sig п
  • 2>&1 означает

    • дескриптора файла 1 стандартный выход (stdout).

    • Дескриптор файла 2 является стандартной ошибкой (stderr).

Вот один способ запомнить эту конструкцию (хотя это и не совсем точно): во-первых, 2>1 может выглядеть как хороший способ, чтобы сориентировать stderr к stdout. Однако на самом деле это будет интерпретироваться как «перенаправить stderr в файл с именем 1». & указывает, что следующим является файловый дескриптор, а не имя файла. Таким образом, конструкция становится: 2>&1.

+0

Большое спасибо за помощь. – Ironman

+0

Я пробовал, и это сработало. Могу ли я генерировать разные файлы журналов, когда задание cron запускается через некоторое время? – Ironman

+1

Вы можете использовать 'logrotate'. Прочитайте [это] (http://www.thegeekstuff.com/2010/07/logrotate-examples/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+TheGeekStuff+ (The + Geek + Stuff)) –

Смежные вопросы