Перечитал все что есть по поиску на opennetb на форуме и в документации. ничего не нашел что качается моей проблемы.
Есть скрипт ftploader который скидывает зазипованные (!!!) логи с одного сервера на другой. есть скрипт logrotate который находится в папке cron.dayli и который просто занимается ротацией логов.
Но он почему во-первых не ротирует логи а во-вторых приводит к тому что squid перестает писать в логи!
crontab :
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin/bin:/usr/lb/news/bin:/bin
MAILTO=root-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1
59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly
14 4 * * * root rm -f /var/spool/cron/lastrun/cron.daily
29 4 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly
44 4 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly
57 6 * * * root ~/ftploader >/var/log/squid-mess.log 2>&1
58 * * * * root /usr/sbin/ntpdate 192.168.3.2 >/var/log/ntpdate.log 2>&1Все окончания строк - вставлены.
logrotate -
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0Проще скритпа не найти!
logrotate.conf -# see "man logrotate" for details
# rotate log files weekly
weekly# keep 4 weeks worth of backlogs
rotate 4# create new (empty) log files after rotating old ones
create# uncomment this if you want your log files compressed
compress# uncomment these to switch compression to bzip2
#compresscmd /usr/bin/bzip2
#uncompresscmd /usr/bin/bunzip2# RPM packages drop log rotation information into this directory
include /etc/logrotate.d# no packages own wtmp -- we'll rotate them here
#/var/log/wtmp {
# monthly
# create 0664 root utmp
# rotate 1
#}# system-specific logs may be also be configured here.
Ну и соответственно -
squid для logrotate/var/log/squid/cache.log {
compress
dateext
maxage 365
rotate 99
size=+1024k
notifempty
missingok
create 640 squid root
postrotate
/etc/init.d/squid reload
endscript
}/var/log/squid/access.log {
compress
dateext
maxage 365
rotate 99
size=+4096k
notifempty
missingok
create 640 squid root
postrotate
/etc/init.d/squid reload
endscript
}/var/log/squid/store.log {
compress
dateext
maxage 365
rotate 99
size=+4096k
notifempty
missingok
create 640 squid root
postrotate
/etc/init.d/squid reload
endscript
}Вроде все правильно - но по какой то причине после ежедневной ротации логов squid перестает записывать access.log!
то есть логи не ведутся!
более того почемуто ротация приводит к тому что файлы не сжимаются а просто кидаются в папку с логами с именем access.log-20041110 (f должны сжиматься и имя соответственно должно быть access.log-20041110.gz!!!Где искать ошибку?
С уважением schess.PS наверное все-таки много написал.
Неужели ни у кого не было проблем с logrotate?
После долгих перетрубаций (=)) заметил что если выполняю скрипты вручную тогда они нормально выполняются и logrotate работает.
но если задача висит в crone'е тогда она не выполняется корректно...
то есть если она висит в папке cron.dayli - тогда скрипт выполняется некорректно.в чем может быть проблема!
PS - приятно общаться сам с собой...
у меня сервак неожиданно стал тормозить, резко переставло хватать памяти, начинаешь смотреть запущенные процессы (ps axw) и видищь такие строки:
13013? S 0:00 awk -v progname=/etc/cron.daily/logrotate progname { ????? print progname ":\n"????? progname=" ";????? }???
и еще
13014 ? R 2357:56 /usr/sbin/logrotate /etc/logrotate.conf
таких строк было много, поубивал все процессы с logrotate, вроде сервак не тормозит, память освободилась, но на следующий день все начинается по новой. Как только по cron-у запускается logrotate --он "виснет" и все что стоит по cron-у за ним не выпонляется.
Причем это случилось само-собой после года успешной работы.
У меня такое подозрение, что со временем что-то накапливается , может логи самого logrotate-а, которые он не ротирует, и он их долго грузит, вообщем не знаю, а проблема не решена, каждое утро теперь начинаю с убивания этих процессов.
Ты еще у себя не нашел ничего????