5

Я хочу отслеживать каждый вывод 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`

Теперь, как мне вставить этот TIMESTAMP в выходной файл?

3 ответа3

8
1  *    * * *   root    php /mix/dostuff.php > "/tmp/dostuff-`date +\%Y-\%m-\%H\ \%k:\%M:\%S`.txt"

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

2

На CentOS 6.6 я использую

*/10 * * * * /usr/bin/php -q /var/www/script.php > cron-job-log-$(date +\%Y\%m\%d\%H\%M\%S).txt

он будет создавать файл каждые 10 минут

cron-job-log-20150401124001.txt
1

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

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