сrontab и скрипт

Форум предназначен для новичков. В нем предполагается рассматривать вопросы, которые встают на первых этапах освоения Linux
Владимир
Интересующийся
Сообщения: 59
Зарегистрирован: 28 сен 2005, 14:36
Откуда: Киев
Контактная информация:

сrontab и скрипт

Сообщение Владимир »

Здравствуйте. Помогите пожалуйста разобраться.
Задача запускать sarg по скрипту в определенное время каждый день.
Есть скрипт, есть файл crontab, в котором указано время запуска sarg.
А куда необходимо поместить скрипт? Наверно, в cron.daily? Но как правильно прописать путь в crontab к исполняемому скрипту?
Заранее спасибо.

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

Владимир, скрипт никуда специально помещать на недо. При вызове его из crontab надо указывать путь к скрипту полностью.
Опыт растет прямо пропорционально выведенному из строя оборудованию

Владимир
Интересующийся
Сообщения: 59
Зарегистрирован: 28 сен 2005, 14:36
Откуда: Киев
Контактная информация:

Сообщение Владимир »

То есть его можно поместить в любой файл, а в crontab указать к нему полный путь? Так с этим ясно. А зачем же тогда эти папки cron.daily,
cron.monthly и т.д. , если не для скриптов?
И еще вопросик, как отключить формирование отчетов сквидом access.log.1 ,access.log.2 и т.д.
Чтобы был один общий файл access.log А то сарг не видит статистику за прошедшие дни.

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

Владимир, полгоаю, это не squid, а logrotate надо крутить...
Опыт растет прямо пропорционально выведенному из строя оборудованию

Аватара пользователя
kae
Неотъемлемая часть форума
Сообщения: 318
Зарегистрирован: 26 янв 2003, 03:53
Откуда: Дзержинск, РБ.
Контактная информация:

Сообщение kae »

У меня так:

в файл /etc/logrotate.d правим

/var/log/squid/access.log {
weekly
rotate 5
copytruncate
compress
notifempty
missingok
prerotate
/root/bin/squidlogs || /bin/true
endscript

}

файл /root/bin/squidlogs у меня такой:

#!/bin/bash
cat /var/log/squid/access.log | /usr/local/bin/calamaris | mail -s 'Squid, calamaris' root
cat /var/log/squid/access.log | /root/bin/squidsites | mail -s 'Squid sites' root
/usr/sbin/sarg | mail -s 'SARG' root
exit 0

Ненужное выбросить. ;)
Будем же учиться хорошо мыслить — вот основной принцип морали
— Паскаль

Владимир
Интересующийся
Сообщения: 59
Зарегистрирован: 28 сен 2005, 14:36
Откуда: Киев
Контактная информация:

Сообщение Владимир »

У меня файл squid в logrotate.d
такой.
#
# Logrotate fragment for squid.
#
#/var/log/squid/*.log {
# daily
# compress
# delaycompress
# rotate 2
# missingok
# nocreate
# sharedscripts
# prerotate
# test ! -x /usr/sbin/sarg-maint || /usr/sbin/sarg-maint
# endscript
# postrotate
# test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
# endscript


Я все закоментировал и думаю теперь логи сквида будут в одном экземпляре. :)
Только я так и не понял полностью на счет crontaba.
Зачем папки cron.daily,
cron.monthly и т.д. , если не для скриптов? Если скрипты можно положить где угодно и прописать к ним путь.

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

Владимир, для порядка. И для системных cronjobs..
Опыт растет прямо пропорционально выведенному из строя оборудованию

Аватара пользователя
Speccyfan
Неотъемлемая часть форума
Сообщения: 540
Зарегистрирован: 18 дек 2004, 15:15
Откуда: Polotsk
Контактная информация:

Сообщение Speccyfan »

Не думаю что это правильно, в таком случае лог-файл будет рости до бесконечности, а ты е каждый раз еще генерить отчет будешь, в общем через некоторое время получиться тормоз.

У меня сделано так, лог файл (access.log) ведется за сутки, но архивы храняться месяц, на всяк случай:

[root@gateway logrotate.d]# cat /etc/logrotate.d/squid
/var/log/squid/access.log {
daily
rotate 30
copytruncate
compress
notifempty
missingok
}
/var/log/squid/cache.log {
weekly
rotate 5
copytruncate
compress
notifempty
missingok
}

/var/log/squid/store.log {
weekly
rotate 5
copytruncate
compress
notifempty
missingok
postrotate
/usr/sbin/squid -k rotate
endscript
}

а в 00.05 я запускаю sarg из крона так:
05 00 * * * sarg

В результате ещедневынй отчет, вроде удобно.
Best Regards, Yury Konovalov aka Speccyfan (2:453/53)
Registered Linux User #379588

Владимир
Интересующийся
Сообщения: 59
Зарегистрирован: 28 сен 2005, 14:36
Откуда: Киев
Контактная информация:

Сообщение Владимир »

Если access.log ведеться за сутки, то как же считать статистику за месяц?
Я хотел бы, что бы новый access начинался после того, как sarg подсчитает статистику за прошлый месяц ( в ночь изменения месяца), а старый после этого уходил в access.log.1
Но как это сделать, моих малых знаний пока не хватает.

Аватара пользователя
Speccyfan
Неотъемлемая часть форума
Сообщения: 540
Зарегистрирован: 18 дек 2004, 15:15
Откуда: Polotsk
Контактная информация:

Сообщение Speccyfan »

Ну мне считать ничего не надо, мне только посмотреть кто-куда,
ну сделай на месяц, но ротировать логи надо.
Best Regards, Yury Konovalov aka Speccyfan (2:453/53)
Registered Linux User #379588

Аватара пользователя
Speccyfan
Неотъемлемая часть форума
Сообщения: 540
Зарегистрирован: 18 дек 2004, 15:15
Откуда: Polotsk
Контактная информация:

Сообщение Speccyfan »

Владимир писал(а): Но как это сделать, моих малых знаний пока не хватает.
man logrotate
man crontab

Тем более что примеров тебе накидали, просто поменяй значения.
Best Regards, Yury Konovalov aka Speccyfan (2:453/53)
Registered Linux User #379588

Владимир
Интересующийся
Сообщения: 59
Зарегистрирован: 28 сен 2005, 14:36
Откуда: Киев
Контактная информация:

Сообщение Владимир »

Всем большущее спасибо. Буду разбираться.

Ответить