URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9502
[ Назад ]

Исходное сообщение
"Комбинирование логов"

Отправлено YaoDzi , 05-Июл-12 12:01 
Привет всем!

Помогите пожалуйста в написании следующего скрипта. Есть папка, в которую сохраняются сотни различных логов, вида:

city.log.2012-01-01
city.log.2012-01-02
...
city.log.2012-07-05

autos.log.2012-01-01
autos.log.2012-01-02
...
autos.log.2012-07-04


В результате нужно скомбинировать все эти логи по архивам, то есть скрипт должен находить все файлы с одинаковой датой (считывает из имени файла) и сжимает их в единый архив. В итоге выглядеть могло бы это так:

2012-01-01.tar.gz # содержит файлы city.log.2012-01-01, autos.log.2012-01-01, итд.2012-01-01
2012-01-02.tar.gz # содержит файлы city.log.2012-01-02, autos.log.2012-01-02, итд.2012-01-02


Содержание

Сообщения в этом обсуждении
"Комбинирование логов"
Отправлено YaoDzi , 05-Июл-12 12:32 
Вобщем такое дело получилось и в принципе выполняет всё задуманное:

DATE=$(ls | awk -F . '{print $3}')
for SORT in $DATE
do
tar -czf /some/dir/$SORT.tar.gz *.$SORT
done

Может кому пригодится..


"Комбинирование логов"
Отправлено LSTemp , 05-Июл-12 21:24 
> Вобщем такое дело получилось и в принципе выполняет всё задуманное:
> DATE=$(ls | awk -F . '{print $3}')
> for SORT in $DATE
> do
> tar -czf /some/dir/$SORT.tar.gz *.$SORT
> done
> Может кому пригодится..

а зачем? про logrotate, etc не слышали?

ход мысли правильный, но в любой ОС подобный механизм уже реализован, причем с более гибкими настройками.

PS
у Вас похоже syslog-ng? Так вот он даже своими встроенными средствами (если мне память не изменяет) подобные задачи решать может.