Страница 1 из 1
сrontab и скрипт
Добавлено: 14 ноя 2005, 11:49
Владимир
Здравствуйте. Помогите пожалуйста разобраться.
Задача запускать sarg по скрипту в определенное время каждый день.
Есть скрипт, есть файл crontab, в котором указано время запуска sarg.
А куда необходимо поместить скрипт? Наверно, в cron.daily? Но как правильно прописать путь в crontab к исполняемому скрипту?
Заранее спасибо.
Добавлено: 14 ноя 2005, 11:51
Llama
Владимир, скрипт никуда специально помещать на недо. При вызове его из crontab надо указывать путь к скрипту полностью.
Добавлено: 14 ноя 2005, 12:15
Владимир
То есть его можно поместить в любой файл, а в crontab указать к нему полный путь? Так с этим ясно. А зачем же тогда эти папки cron.daily,
cron.monthly и т.д. , если не для скриптов?
И еще вопросик, как отключить формирование отчетов сквидом access.log.1 ,access.log.2 и т.д.
Чтобы был один общий файл access.log А то сарг не видит статистику за прошедшие дни.
Добавлено: 14 ноя 2005, 12:17
Llama
Владимир, полгоаю, это не squid, а logrotate надо крутить...
Добавлено: 14 ноя 2005, 15:24
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
Ненужное выбросить.

Добавлено: 14 ноя 2005, 16:04
Владимир
У меня файл 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 и т.д. , если не для скриптов? Если скрипты можно положить где угодно и прописать к ним путь.
Добавлено: 14 ноя 2005, 16:08
Llama
Владимир, для порядка. И для системных cronjobs..
Добавлено: 14 ноя 2005, 16:17
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
В результате ещедневынй отчет, вроде удобно.
Добавлено: 14 ноя 2005, 16:25
Владимир
Если access.log ведеться за сутки, то как же считать статистику за месяц?
Я хотел бы, что бы новый access начинался после того, как sarg подсчитает статистику за прошлый месяц ( в ночь изменения месяца), а старый после этого уходил в access.log.1
Но как это сделать, моих малых знаний пока не хватает.
Добавлено: 14 ноя 2005, 16:30
Speccyfan
Ну мне считать ничего не надо, мне только посмотреть кто-куда,
ну сделай на месяц, но ротировать логи надо.
Добавлено: 14 ноя 2005, 16:33
Speccyfan
Владимир писал(а):
Но как это сделать, моих малых знаний пока не хватает.
man logrotate
man crontab
Тем более что примеров тебе накидали, просто поменяй значения.
Добавлено: 14 ноя 2005, 16:40
Владимир
Всем большущее спасибо. Буду разбираться.