Привет всем!Помогите пожалуйста в написании следующего скрипта. Есть папка, в которую сохраняются сотни различных логов, вида:
city.log.2012-01-01
city.log.2012-01-02
...
city.log.2012-07-05autos.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
Вобщем такое дело получилось и в принципе выполняет всё задуманное:DATE=$(ls | awk -F . '{print $3}')
for SORT in $DATE
do
tar -czf /some/dir/$SORT.tar.gz *.$SORT
doneМожет кому пригодится..
> Вобщем такое дело получилось и в принципе выполняет всё задуманное:
> 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? Так вот он даже своими встроенными средствами (если мне память не изменяет) подобные задачи решать может.