
SQUID, ротация логов и их архивирование
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- ефрейтор
- Сообщения: 63
- Зарегистрирован: 2008-12-03 11:21:07
SQUID, ротация логов и их архивирование
Здравствуйте. Подскажите, как можно реализовать резервное копирование логов, чтобы ротацией их не перезаписывать все? Хочется, чтобы ротация шла раз в сутки, а вот логи хранились за все время, в отдельной папке, мало ли что вылезет спустя некоторое время. Можно конечно в конфиге сквида поставить ротация например 1000 файлов, но как-то не очень это красиво будет
.

Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- InventoR
- ст. лейтенант
- Сообщения: 1344
- Зарегистрирован: 2006-12-10 19:43:25
- Контактная информация:
Re: SQUID, ротация логов и их архивирование
Вот такая вот хрень крутится у меня уже давно с год точно.
Надо конечно переделать. но суть поймете.
Работает каждый день в 23.55
Надо конечно переделать. но суть поймете.
Работает каждый день в 23.55
Код: Выделить всё
12:22 root@mx [squid]#cat squid_ro.sh
#!/bin/sh
###Переменые###
#Директория сквида
squid=/usr/local/sbin/squid
#Формат времени для создания папок
MY_DATE=$(/bin/date +%Y-%m-%d)
MY_DT=$(/bin/date +%Y-%m)
#Директория хранения логов
logs=/usr/local/squid/logs
#Директория в которую копируются логи
logback=/usr/local/squid/logbackup
#Где находится архиватор tar
tar=/usr/bin/tar
#Где находится архиватор gzip
gzip=/usr/bin/gzip
###Основная работа###
#Создать директории для хранения логов.
mkdir $logback
#Ротация логов
$squid -k rotate
#Задержка на ротацию логов squida из-за большого обьема
sleep 10
#Переносим и зажимаем логи доступа
mv $logs/access.log.0 $logback/$MY_DATE.ac.log
sleep 10
mkdir -p $logback/_$MY_DT
cat $logback/$MY_DATE.ac.log >> $logback/_$MY_DT/$MY_DT.txt &&
$gzip -9 $logback/$MY_DATE.ac.log
mkdir $logback/$MY_DATE
mv $logback/$MY_DATE.ac.log.gz $logback/$MY_DATE/$MY_DATE.ac.log.gz
#Переносим и зажимаем логи кэша
mv $logs/cache.log.0 $logback/$MY_DATE.ca.log
sleep 10
$gzip -9 $logback/$MY_DATE.ca.log
mkdir $logback/$MY_DATE
mv $logback/$MY_DATE.ca.log.gz $logback/$MY_DATE/$MY_DATE.ca.log.gz
#Переносим и зажимаем логи истории
mv $logs/store.log.0 $logback/$MY_DATE.st.log
sleep 10
$gzip -9 $logback/$MY_DATE.st.log
mkdir $logback/$MY_DATE
mv $logback/$MY_DATE.st.log.gz $logback/$MY_DATE/$MY_DATE.st.log.gz
12:22 root@mx [squid]#
ну вот и сказочке конец, кто слушал, тот молодец.
-
- рядовой
- Сообщения: 19
- Зарегистрирован: 2009-01-19 5:41:30
Re: SQUID, ротация логов и их архивирование
Универсальная ротация логов (может и не очень к месту, но может пригодиться):
в /etc/newsyslog.conf добавить строку
и перезагрузить newsyslog. Сохраняет файлы логов там же, просто меняет имя. (пример /var/log/messages)
P.S. подправил пути файлов (может тоже неправильно, просто у меня сквида небыло)
в /etc/newsyslog.conf добавить строку
Код: Выделить всё
/var/log/squid.log 644 7 * @T00 C /var/run/squid.pid
P.S. подправил пути файлов (может тоже неправильно, просто у меня сквида небыло)
- InventoR
- ст. лейтенант
- Сообщения: 1344
- Зарегистрирован: 2006-12-10 19:43:25
- Контактная информация:
Re: SQUID, ротация логов и их архивирование
лучше ротировать самим сквидом, потому что ротировать надо не один лог.
А человек в задании ставил на отдельную папку и все такое..
А человек в задании ставил на отдельную папку и все такое..
ну вот и сказочке конец, кто слушал, тот молодец.
-
- рядовой
- Сообщения: 19
- Зарегистрирован: 2009-01-19 5:41:30
Re: SQUID, ротация логов и их архивирование
Я конечно понимаю Вам религия не позволяет использовать встроенные мощные средства для своих задач, но другие то тут причем?InventoR писал(а):лучше ротировать самим сквидом, потому что ротировать надо не один лог.
А человек в задании ставил на отдельную папку и все такое..
советую почитать
Код: Выделить всё
man newsyslog
man newsyslog.conf
Код: Выделить всё
/var/log/access.log 644 7 * @T00 CJ /var/run/squid.pid 30
/var/log/cache.log 644 7 * @T00 CJ /var/run/squid.pid 30
/var/log/store.log 644 7 * @T00 CJ /var/run/squid.pid 30
J - это указывает на то что старые логи должны сжиматься с использованием bzip2 (для gzip - Z)
мой бэкапный демон берет логи (сжатые) по своему расписанию.
P.S. Использование newsyslog - это еще и управление всеми логами из одного места
-
- подполковник
- Сообщения: 3923
- Зарегистрирован: 2008-09-04 11:51:25
- Откуда: Санкт-Петербург
Re: SQUID, ротация логов и их архивирование
Может быть архивировать логи сквида это и хорошо, но по-моему лучше хранить обработку их... Правда в этом случае будут нюансы...
-
- ефрейтор
- Сообщения: 63
- Зарегистрирован: 2008-12-03 11:21:07
Re: SQUID, ротация логов и их архивирование
Спасибо за ответы и особенно за приведенный скрипт, про syslog я пока не такой спец
, но зато есть над чем подумать.
Обработка логов хранится в lightsquid, но хочется и сами логи хранить.

Обработка логов хранится в lightsquid, но хочется и сами логи хранить.
- a1ds
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2009-04-19 14:41:44
- Откуда: Отовсюда
Re: SQUID, ротация логов и их архивирование
Переписал Скрипт
Спасибо всем
Архивируем, а затем удаляем логи старше чем 31 день
В squid.conf Выставить
logfile_rotate 1
На всякий случай
Запуск по расписанию
FreeBSD 7.0-RELEASE

Спасибо всем
Архивируем, а затем удаляем логи старше чем 31 день
В squid.conf Выставить
logfile_rotate 1
На всякий случай

Запуск по расписанию
FreeBSD 7.0-RELEASE
Код: Выделить всё
#!/bin/sh
log_file=/var/log/local/squid_log_rotate.log
squid_log_mask=/usr/local/squid/logs/*.0
backup_path=/tmp/backup/squid
remove_age=31
echo "[START `date`]" > $log_file
echo "Rotate squid logs" >> $log_file
/usr/local/sbin/squid -k rotate
sleep 10
for squid_files in `ls -d $squid_log_mask`
do
dir_name=`basename -s .log.0 $squid_files`
echo "Create dir's" >> $log_file
mkdir -p $backup_path/$dir_name >> $log_file 2>&1
echo "Archivate squid logs" >> $log_file
/usr/bin/tar -cvjf $backup_path/$dir_name/`date "+%Y_%m_%d_%H_%M"`.tar.bz2 $squid_files >> $log_file 2>&1
echo "Remove squid logs" >> $log_file
rm -v $squid_files >> $log_file 2>&1
for backup_files in `ls -d $backup_path/$dir_name/*`
do
cur_date=`date +%s`
file_date=`/usr/bin/stat -f %m $backup_files`
file_age=`echo "($cur_date-$file_date)/60/60/24" | /usr/bin/bc`
if [ $file_age -gt $remove_age ]
then
echo "Remove old logs" >> $log_file
rm -v $backup_files >> $log_file 2>&1
fi
done
done
echo "[END `date`]" >> $log_file