Доброе время суток!
в системе установлен calamaris, которому предписано сгредать сквидовую статистику. Запуск через cron. Необходимо создавать файл отчёта с датой создания в заголовкезапускаю из командной строки - работает нормально (файл с нужным названием формируется)
через cron - не хочет# (Cron version V5.0 -- $OpenBSD: crontab.c,v 1.49 2005/11/29 20:43:31 millert Exp $)
#
SHELL=/usr/local/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
HOME=/var/log0 7 * * * /usr/local/bin/aide -C -c /etc/aide.conf /var/log/aide.$(date +%d.%m.%Y).log
48 15 * * * /bin/cat /var/log/squid/access.log | /usr/sbin/calamaris > /var/log/calamaris_report.log ; mv /var/log/calamaris_report.log /var/log/calamaris_$(date +%d.%m.%Y).log-------------------------------------
Проблема в этой части строки /var/log/calamaris_$(date +%d.%m.%Y).log
в чём я ошибся?
Система OpenBSD 3.9 Stable
>Доброе время суток!
>в системе установлен calamaris, которому предписано сгредать сквидовую статистику. Запуск через cron.
>Необходимо создавать файл отчёта с датой создания в заголовке
>
>запускаю из командной строки - работает нормально (файл с нужным названием
>формируется)
>через cron - не хочет
>
># (Cron version V5.0 -- $OpenBSD: crontab.c,v 1.49 2005/11/29 20:43:31 millert Exp
>$)
>#
>SHELL=/usr/local/bin/bash
>PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
>HOME=/var/log
>
>0 7
> * *
> *
> /usr/local/bin/aide -C -c /etc/aide.conf /var/log/aide.$(date +%d.%m.%Y).log
>48 15 * * * /bin/cat /var/log/squid/access.log | /usr/sbin/calamaris > /var/log/calamaris_report.log ; mv /var/log/calamaris_report.log /var/log/calamaris_$(date +%d.%m.%Y).log
>
>-------------------------------------
>
>Проблема в этой части строки /var/log/calamaris_$(date +%d.%m.%Y).log
>
>в чём я ошибся?
>Система OpenBSD 3.9 Stable
# which date - спасет?
># which date - спасет?
нетставил полный путь к /bin/date - не помогает
>
>># which date - спасет?
>
>
>нет
>
>ставил полный путь к /bin/date - не помогаетзначит читай про переменные в bash и подстаноку в них значений, ну либо вместо
command option в кроне, укажи скрипт в который и помести все что тебе нужно
/var/log/calamaris_`/bin/date +%d.%m.%Y`.log
Гм... то что я написал скорее всего работать не будет т.к. не закрыты параметры. Щас посмотрел у себя, таки я таких конструкций не делал, все запихивал и отдельные файл и его пускал по крону.#!/bin/sh
DATE=`/bin/date '+%d.%m.%Y'`
/usr/bin/touch /tmp/chto-to_$DATE
>[оверквотинг удален]
> *
> /usr/local/bin/aide -C -c /etc/aide.conf /var/log/aide.$(date +%d.%m.%Y).log
>48 15 * * * /bin/cat /var/log/squid/access.log | /usr/sbin/calamaris > /var/log/calamaris_report.log ; mv /var/log/calamaris_report.log /var/log/calamaris_$(date +%d.%m.%Y).log
>
>-------------------------------------
>
>Проблема в этой части строки /var/log/calamaris_$(date +%d.%m.%Y).log
>
>в чём я ошибся?
>Система OpenBSD 3.9 StableОшибся в том, что не прочитал man crontab... % в crontab означает начало новой строки... в данном случае его нужно экранировать слешем.