URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 67300
[ Назад ]

Исходное сообщение
"cron и дата создания в имени файла"

Отправлено RedPestyZide , 30-Июн-06 16:57 
Доброе время суток!
в системе установлен 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


Содержание

Сообщения в этом обсуждении
"cron и дата создания в имени файла"
Отправлено lavr , 30-Июн-06 17:29 
>Доброе время суток!
>в системе установлен 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 - спасет?


"cron и дата создания в имени файла"
Отправлено RedPestyZide , 30-Июн-06 18:22 

># which date - спасет?


нет

ставил полный путь к /bin/date  - не помогает


"cron и дата создания в имени файла"
Отправлено lavr , 30-Июн-06 18:42 
>
>># which date - спасет?
>
>
>нет
>
>ставил полный путь к /bin/date  - не помогает

значит читай про переменные в bash и подстаноку в них значений, ну либо вместо
command option в кроне, укажи скрипт в который и помести все что тебе нужно


"cron и дата создания в имени файла"
Отправлено co6aka , 30-Июн-06 18:45 
/var/log/calamaris_`/bin/date +%d.%m.%Y`.log

"cron и дата создания в имени файла"
Отправлено co6aka , 30-Июн-06 19:38 
Гм... то что я написал скорее всего работать не будет т.к. не закрыты параметры. Щас посмотрел у себя, таки я таких конструкций не делал, все запихивал и отдельные файл и его пускал по крону.

#!/bin/sh
DATE=`/bin/date '+%d.%m.%Y'`
/usr/bin/touch /tmp/chto-to_$DATE


"cron и дата создания в имени файла"
Отправлено Filalex , 03-Май-08 21:14 
>[оверквотинг удален]
>     *      
> /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 означает начало новой строки... в данном случае его нужно экранировать слешем.