6

Вот работа crontab

/usr/local/bin/python2.7 /home/scripts/script.py >> /home/scripts/logs/log.log 2>&1

Как мне генерировать новый журнал каждый раз при запуске задания?

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

Неужели для этого мне нужно запустить другую работу cron?

1 ответ1

7

Вы можете использовать команду date для генерации уникального (ish) имени файла:

/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/"`date +\%d\%m\%y_\%H\%M\%S`".log 2>&1

РЕДАКТИРОВАТЬ: убедитесь, что экранирование знаков процента (\%). Они имеют особое значение в cron, и crontab выдаст ошибку.

Таким образом, новый файл журнала (называемый <date_time>.log) будет создаваться при каждом запуске вашей работы.

$ date; touch "`date +%d%m%y_%H%M%S`.log"
  Tue Sep 25 04:39:25 CEST 2012
$ ls *log
  250912_043925.log

Предполагая, что ваш скрипт не запускается чаще, чем раз в секунду (что не может быть, если вы используете простой crontab), у вас все должно быть в порядке.

Если, как предполагается в комментариях, ваш скрипт запускается разными пользователями, вы можете добавить имя пользователя к имени файла журнала:

/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/$(echo -n `whoami`_`date +\%d\%m\%y_\%H\%M\%S`).log 2>&1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .