1 * * * * root php /mix/dostuff.php > "/tmp/dostuff-`date +\%Y-\%m-\%H\ \%k:\%M:\%S`.txt"
Просто как тот.
Я хочу отслеживать каждый вывод 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 в выходной файл?
1 * * * * root php /mix/dostuff.php > "/tmp/dostuff-`date +\%Y-\%m-\%H\ \%k:\%M:\%S`.txt"
Просто как тот.
На 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
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