Надсилання виводу cron у файл із позначкою часу


38

У мене є такий заголовок у налаштуваннях LAMP:

0 0 * * * /some/path/to/a/file.php > $HOME/cron.log 2>&1

Це записує вихід файлу в cron.log . Однак, коли він запускається знову, він перезаписує все, що було раніше у файлі.

Як я можу отримати cron для виведення у файл із позначкою часу у своєму імені файлу?

Приклад файлу буде приблизно таким: 2010-02-26-000000-cron.log

Мене не хвилює формат, якщо він має певну часову позначку.

Заздалегідь спасибі.


8
якщо ви не хочете, $HOME/cron.logщоб вас переписували, використовуйте >>не>
Дейв Чейні,

Відповіді:


66

Спробуйте:

0 0 * * * /some/path/to/a/file.php > $HOME/`date +\%Y\%m\%d\%H\%M\%S`-cron.log 2>&1

Подивіться, якщо вам подобається формат дати; просто не забудьте уникнути будь-якого %подібного \%, як вище.


І дозвольте мені взагалі запропонувати підхід до імен файлів, таких як 0 0 * * * /some/path/to/a/file.php > $HOME/scriptname-дата + \% Y \% m \% d \% H \% M \% S.log
Крістіан

Якщо вам знадобиться трохи date +\%Y\ \%m\ \%d\ \%H:\%M:\%Sлюдськіше читати, спробуйте: -cron.log
DevilCode

4
@DevilCode, так, хоча пробіли у назви файлів не дуже звичайні в Unix. Дефіси або підкреслення може бути кращим варіантом: date +\%Y-\%m-\%d_\%H:\%M:\%S-cron.log.
поділ

1
Ці вигадливі персонажі втечі мене завжди отримують. Дякуємо за нагадування!
Тоні-Кафе

14

Я настійно рекомендую зберегти все в одному файлі, використовуючи часову позначку, як пояснено тут .

видалити

2> & 1

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




-2

Я вирішив цю проблему; просто додайте шлях до дати (/ bin / date) перед командою date.


2
Будь ласка, додайте більше інформації та приклад.
Данієль

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.