Как я могу добавить метку времени в конец имени выходного файла задания крона?

Я хочу отследить каждый вывод crontab в разделенный файл. Обычно, я использую это в качестве crontab запись:

1  *    * * *   root    php /mix/dostuff.php > /tmp/dostuff.txt

Теперь, я хочу добраться до записи вместо /tmp/dostuff.txt, к /tmp/dostuff-YYYY-MM-DD-HH-II-SS.txt

Я мог получить часть даты, с помощью этого:

TIMESTAMP=`date +%Y-%m-%H\ %k:%M:%S`

Теперь, как я засовываю эту МЕТКУ ВРЕМЕНИ в выходной файл?

5
задан 14.03.2012, 18:17

2 ответа

crontabs выполняются в другой среде, чем оболочка по умолчанию, таким образом, можно использовать маленький сценарий оболочки в соответствии с корневым каталогом с чем-то вроде этого в ней (мы назовем ее script.sh):

#!/bin/bash
php /mix/dostuff.php > /tmp/dostuff-`date +%Y-%m-%H\ %k:%M:%S`.txt
exit

затем измените это полномочия сценариев гарантировать, что это - исполняемый файл, 755 должен быть прекрасным. Затем в Вашем crontab:

1  *    * * *   root    /home/yourusername/script.sh
1
ответ дан 07.12.2019, 17:03
1  *    * * *   root    php /mix/dostuff.php > "/tmp/dostuff-`date +\%Y-\%m-\%H\ \%k:\%M:\%S`.txt"

Простой как это.

8
ответ дан 07.12.2019, 17:03
  • 1
    , crontabs оцениваемые в той же среде как оболочка по умолчанию. – John T 09.09.2009, 13:54
  • 2
    , который я видит, как это проблемой здесь. Среда крона достаточная для этой команды. Кроме того, это работает, я просто тестировал его сам. – Etienne Dechamps 09.09.2009, 14:02
  • 3
    анализирует файл, нет /bin/bash, вот почему. – John T 09.09.2009, 14:07
  • 4
    crontab (5): "''Шестое'' поле (остальная часть строки) указывает команду, которая будет выполнена. Вся часть команды строки, до новой строки или символа %, будет выполняться/bin/sh или оболочкой, указанной в переменной SHELL crontab файла". Можно даже записать все сценарии оболочки в crontab строке, если Вы хотите! – Etienne Dechamps 09.09.2009, 14:12

Теги

Похожие вопросы