После долгой паузы хочу продолжить тему. Значит так: имеется FreeBSD server, на котором крутится pf и squid. Проблема со сквидом такая, что сквид кэш быстро заполняется, после чего у пользователей перестает работать приложение получающее графики с биржи, а также отваливается весь http трафик. Эту проблему (раз в два дня) приходилось решать так:
Код: Выделить всё
[root@SUN /home/trojan]# rm -rf /usr/local/squid/cache/*
[root@SUN /home/trojan]# shutdown -r now
[root@SUN /home/trojan]# squid -z
[root@SUN /home/trojan]# shutdown -r now
На все это уходило минуты 3-4, т.е. весь офис на это время был оторван от мира. Причем для этого вовсе не обязательно чтобы на точке монтирования (в данном случае /usr), оставалось 0 свободного места.
С логами было попроще, но все равно приходилось вручную делать:
Код: Выделить всё
[root@SUN /home/trojan]# echo > access.log
[root@SUN /home/trojan]# echo > store.log
Так как возможности добавить на сервере еще один жесткий диск нет никакой, то очень хочетолсь найти решение автоматического очищения кэша и логов без необходимости повторного создания каждый раз свап директорий и главное рестарта самого сервера.
Пока проблему с переполнением логов access.log и store.log решил, вернее пробую решить таким образом:
Код: Выделить всё
cache_access_log /dev/null
cache_store_log none
cache_log /dev/null
Насчет кэша: уменьшил максимальный размер кэшируемого фала до 4 МБ и сейчас кэш забивается не так быстро, правда чистить кэш вручную все же приходится.
Теперь пара вопросов:
1. Есть ли другие способы решения такой проблемы?
2. Объясните пожалуйста что делает команда squid -k rotate. Я так понял она переименовывает тот же access.log, store.log, cache.log и создает те же логи только чистые. Тогда возникает вопрос куда команда девает старые логи? Если оставляет в той же директории, то смысл в этой команде?