обрабатывать большое количество журналов с помощью cron или logrotate

У нас есть приложение, развернутое на сервере, которое в некоторых сценариях генерирует некоторые журналы в следующем формате.

process_name.hostname.common_text.log.{error/info/warning}.date.time 

Теперь из-за этого формата нет ни одного журнала, но несколько таких журналов с одним и тем же именем process_name.hostname.common_text. {Error / info / warning} , но с остальными частями, отличающимися друг от друга, из-за различий в дате и время. Но что касается логротата, он рассматривает все это как отдельные журналы, и он сохранит одну такую ​​копию каждого журнала, если я скажу

вращать 1

в logrotate conf.

Но, насколько мне известно, это все те же журналы, и я не хочу сохранять журнал, кроме последнего 1 журнала из каждой категории ( ошибка / информация / предупреждение ). Как я могу это сделать?

Я думал написать сценарий, который будет работать еженедельно в cron. И этот скрипт будет проверять последний файл из каждой категории ( error / info / warning ) с использованием timestamp ( ls -ltr ), а затем удалять остальную часть таких журналов. Но, опять же, это становится слишком сложным, если я пытаюсь поместить его в скрипт.

Я ищу что-то вроде этого.

 ls -ltr |grep process_name.hostname.common_text.log.error |head -n -1 ls -ltr |grep process_name.hostname.common_text.log.info |head -n -1 ls -ltr |grep process_name.hostname.common_text.log.warning |head -n -1 

Вышеуказанные 3 команды вернут имена всех журналов process_name.hostname.common_text.log. {Error / info / warning} .date.time, за исключением недавнего.

1) Можно ли передать вывод каждой из приведенных выше команд в exec или xargs в одной строке, чтобы я мог запустить rm -rf против него?

2) Каков лучший способ сделать это? coz, имя процесса снова имеет 2 разных имени, поэтому мне нужно будет запустить 6 команд или, может быть, больше.

3) Вместо grepping трижды, один раз для ошибки и один раз для информации, и один раз для предупреждения, есть ли способ, которым я могу grep для всех 3 в одной строке?

One Solution collect form web for “обрабатывать большое количество журналов с помощью cron или logrotate”

Если вы используете -1 вместо -l для ls, вы получаете только имена файлов и можете передавать их напрямую в rm. Я бы использовал что-то вроде этого:

 rm $(ls -1tr process_name.hostname.common_text.log.error* | head -n -1) \ $(ls -1tr process_name.hostname.common_text.log.info* | head -n -1) \ $(ls -1tr process_name.hostname.common_text.log.warning* | head -n -1) 
  • Сценарий оболочки возвращает 126 код выхода из crontab
  • Подробный вывод в лог-файле и простой вывод на экран?
  • Что делает этот expr в сценарии оболочки?
  • Когда я пытаюсь добавить Android SDK в свой PATH, он дает контекстную ошибку
  • Как выполнить команду случайным образом в течение заданного интервала времени?
  • Команда / скрипты для проверки времени обратного DNS-поиска
  • Как поймать возврат каретки / строку в заявлении case
  • Описание mpack (-d) из переменной скрипта
  • Обертка Bash, которая будет форматировать вывод другой программы
  • Как обрабатывать ключи в сценарии оболочки?
  • Что такое эквивалент Fedora /var/lib/dpkg/info/.prerm?
  • Interesting Posts

    Amazon EC2 MySQL не удалось запустить

    Запретить запуск файла сценария удаленно с помощью SSH

    dhcp: Ошибка поиска имени хоста

    Флеш-накопитель, не работающий на конкретной машине RHEL

    Два адаптера usb wifi, только wlan0 появляется, как получить wlan1?

    Как узнать, написан ли сценарий оболочки в bash или sh

    Графика при загрузке, как backtrack linux или Gentoo live DVD после нажатия alt + F1 при загрузке

    Загрузка в TTY без графики?

    Сделать все файлы в директории только для чтения без изменения разрешений?

    diff двух каталогов, но игнорировать расширения

    Как mount определяет параметры установки по умолчанию для вновь подключенных файловых систем?

    Строительство дома

    Как я могу запретить Windows переписывать GRUB при использовании устройства с двойной загрузкой

    Создание электронной почты, которая может вызвать скрипт

    Любой лучший метод, чем это для сортировки файлов по дате создания?

    Linux и Unix - лучшая ОС в мире.