Как отсортировать логи (Как отсортировать логи)

Cent OS, Scientific Linux

Модератор: Модераторы разделов

artcom7771390
Сообщения: 4
ОС: Linux

Как отсортировать логи

Сообщение artcom7771390 »

Приветствую Всех!!!
Подскажите пожалуйста есть два файла лога которые нужно отсортировать. Например нужно старые записи дат в логе вывести в другой файл и сжать в .gz и их же почистить оставить только с новыми датами.
Последний раз редактировалось artcom7771390 12.05.2020 22:16, всего редактировалось 1 раз.
Спасибо сказали:

Аватара пользователя
yurkats
Сообщения: 70
ОС: Fedora

Re: Как отсортировать логи

Сообщение yurkats »

logrotate
Спасибо сказали:

artcom7771390
Сообщения: 4
ОС: Linux

Re: Как отсортировать логи

Сообщение artcom7771390 »

Это я в курсе :)
Хард имеет ограниченный объём. При выполнения logrotate нехватка места пишет.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 17054
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Как отсортировать логи

Сообщение Bizdelnick »

Так добавьте места или удалите ненужные файлы. Причём тут «сортировка» логов?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

artcom7771390
Сообщения: 4
ОС: Linux

Re: Как отсортировать логи

Сообщение artcom7771390 »

Bizdelnick писал:
12.05.2020 23:26
Так добавьте места или удалите ненужные файлы. Причём тут «сортировка» логов?
Нет возможности добавить места и файл лога нужен. Задача стоит не удалять логи они нужны, а старые записи подтереть в них... есть возможность или нет? Например с помощью sed команды или другой?
Спасибо сказали:

Аватара пользователя
s.xbatob
Сообщения: 1002
ОС: Fedora

Re: Как отсортировать логи

Сообщение s.xbatob »

На том же месте? Это вряд ли.
Спасибо сказали:

Аватара пользователя
yurkats
Сообщения: 70
ОС: Fedora

Re: Как отсортировать логи

Сообщение yurkats »

Если просто подрезать текущий лог, при превышении размера в 1Мб то:


#/etc/logrotate.d/xxx

Код: Выделить всё

/var/log/xxx.log {
    rotate 0
    size 1M
    missingok
    notifempty
}
ЗЫЖ в работе не проверял...
Спасибо сказали:

artcom7771390
Сообщения: 4
ОС: Linux

Re: Как отсортировать логи

Сообщение artcom7771390 »

yurkats писал:
13.05.2020 00:44
Если просто подрезать текущий лог, при превышении размера в 1Мб то:


#/etc/logrotate.d/xxx

Код: Выделить всё

/var/log/xxx.log {
    rotate 0
    size 1M
    missingok
    notifempty
}
ЗЫЖ в работе не проверял...
В чем прикол сказали определенно сделать типа так:
/etc/logrotate.d/xxx.log {
copytruncate
weekly
rotate 13
compress
delaycompress
notifempty
missingok
create 644 root root
}

После этого logrotate не выполняется пишет мало места, но и места нету возможности добавить на вм.
Файл логов получился объемный, и нужно удалить старые даты с лога предварительно сохранив через grep в отдельный файл и сжать его в .gz
Старые даты я слил в отдельный файл через grep -v 'даты' /home/xx/xxx/xxxx.log | gzip > home/xx/xxx/xxxx.log.gz
А теперь Нужно их сличить чтобы удостовериться что все старые даты слились и не потерялись. Это сделать через diff если файл весовый? И как почистить старые даты в исходном логе через sed ?
Заранее Спасибо за ответ!
Спасибо сказали:

azsx
Сообщения: 3242
ОС: calculate linux, debian, ubuntu

Re: Как отсортировать логи

Сообщение azsx »

Я сталкивался с подобной проблемой.
Я переименовывал файл логов, то есть система тут же создаёт новый файл и пишет в него.
Переименованный файл скачивал с вм на свой комп.
Лично я на домашнем компе и оставлял, не хранил на сервере, но в вашем случае вам надо его сжать и выгрузить обратно.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 17054
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Как отсортировать логи

Сообщение Bizdelnick »

artcom7771390 писал:
12.05.2020 23:41
Задача стоит не удалять логи они нужны, а старые записи подтереть в них... есть возможность или нет? Например с помощью sed команды или другой?
Нет. В любом случае должен будет создаться новый файл, если для этого недостаточно места — извиняйте. Если место есть, но мало, то да, можно sed'ом: sed -i '1,1000d' file.log (удалит строки с 1 по 1000). Но, обратите внимание, я исхожу из того, что программа, пишущая лог, не держит файл открытым (если это не так, то приведённый Вами пример logrotate некорректен).
artcom7771390 писал:
13.05.2020 01:25
В чем прикол сказали определенно сделать типа так:

Код: Выделить всё

/etc/logrotate.d/xxx.log {
copytruncate
weekly
rotate 13
compress
delaycompress
notifempty
missingok
create 644 root root
}
Ну попробуйте уменьшить rotate, убрать delaycompress, вместо weekly прописать size <размер>. Подробности в man logrotate.conf.
Общий смысл в том, что больше, чем доступно места, Вы в любом случае не сохраните. Либо надо жертвовать частью логов, либо добавлять диск.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
yurkats
Сообщения: 70
ОС: Fedora

Re: Как отсортировать логи

Сообщение yurkats »

Короче, попробовал на своей машине, "rotate 0" не катит он просто удаляет в 0 содержимое лога, т.е. когда возникает условие, по ротации лога, он не создает второй файл с существующим логом, а просто начинает новый лог с начала вести, а что было ранее удаляет.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 17054
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Как отсортировать логи

Сообщение Bizdelnick »

yurkats писал:
14.05.2020 11:37
"rotate 0" не катит он просто удаляет в 0 содержимое лога, т.е. когда возникает условие, по ротации лога, он не создает второй файл с существующим логом
А Вы чего-то другого ожидали?
rotate count
Log files are rotated count times before being removed or mailed to the address specified in a mail directive. If count is 0, old versions are removed rather than rotated. Default is 0.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
bars
Сообщения: 219
ОС: BSD/LINUX

Re: Как отсортировать логи

Сообщение bars »

Код: Выделить всё

weekly
rotate 13
А для чего столько копий лога хранить?
Если нет места, то логичнее было-бы сократить количество файлов лога.
А так же, у вас раз в неделю происходит ротация лог, сделайте раз в сутки и я думаю этого будет достаточно.
Либо вовсе перенести на другой диск логи!
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:

Аватара пользователя
s.xbatob
Сообщения: 1002
ОС: Fedora

Re: Как отсортировать логи

Сообщение s.xbatob »

Кстати, судя по разделу, у вас Fedora или подобное. Там же логи хранит journald в своей базе данных, и дисциплина хранения там подходящая. А файлы оставлены только для совместимости.
Спасибо сказали:

Sherali
Сообщения: 5
ОС: Centos 7

Re: Как отсортировать логи

Сообщение Sherali »

вот небольшая инструкция
http://manpages.ylsoftware.com/ru/logrotate.8.html
https://mnorin.com/logrotate-nastrojka-rotatsii-logov.html

Shell

# yum install logrotate
# vi /etc/logrotate.conf # Заходим суда

Код: Выделить всё

include /etc/logrotate.d       # Добавляем строчку если нет

Shell

# cd /etc/logrotate.d/ # Переходим суда
# touch vsftpd # Создаём файл

Код: Выделить всё

/var/log/имя файла{               
  rotate 5                      
  size 10m                       
  compress                       
  create                         
  dateext                        
  dateformat -%Y-%m-%d_%H   
  olddir /var/log/old-log        
}
Последний раз редактировалось /dev/random 10.06.2020 19:32, всего редактировалось 1 раз.
Причина: форматирование
Спасибо сказали: