LINUX.ORG.RU
ФорумAdmin

Удаление строк логов за последнее *** дней/часов/минут от текущей даты.

 , , ,


0

2

Добрый день! Столкнулся со своеобразной задачей! Нужно удалять стоки логов за определенный период времени от текущего времени и вносить изменения в эти же файлы. (Зачем так до конца и не понял)))). Находил весьма похожие решения на sed, awk и perl, но адаптировать конкретно под эту задачу не хватило уровня( Прошу помощи здесь.

Ответ на: комментарий от zolden

Mar 21 16:14:03 hp sudo: pam_unix(sudo:session): session closed for user root

Mar 21 16:14:07 hp su: pam_unix(su:auth): Couldn’t open /etc/securetty: Нет такого файла или каталога

Mar 21 16:14:08 hp su: pam_unix(su:auth): Couldn’t open /etc/securetty: Нет такого файла или каталога

Mar 21 16:24:08 hp su: (to root) user on pts/1

Mar 21 16:24:08 hp su: pam_unix(su:session): session opened for user root by (uid=1000)

Это auth.log (для примера). Нужно удалять строки во всех файлах логов в папке /log/.

Допустим, что сейчас 21 марта 16:28:00. Нужно удалить все строки за последние 5 минут (для примера), соответственно вывод нужен:

Mar 21 16:14:03 hp sudo: pam_unix(sudo:session): session closed for user root

Mar 21 16:14:07 hp su: pam_unix(su:auth): Couldn’t open /etc/securetty: Нет такого файла или каталога

Mar 21 16:14:08 hp su: pam_unix(su:auth): Couldn’t open /etc/securetty: Нет такого файла или каталога

Denis777 ()
Ответ на: комментарий от router

Какеры да) тут другое. Есть неудобно расположенная организация (по три-четыре кабинета на каждом из восьми этажей здания - частная клиника). Паренёк админ сидит на первом возле «серверной». Пришел новый руководитель и решил в админе выносливость видимо тренировать, требует, чтобы по каждой мелочи бегал от машины к машине. Лифты есть, но парень все равно устал). Руководитель логи при этом смотреть научился (причем удаленно))))

Denis777 ()

Нужно удалять стоки логов за определенный период времени от текущего времени

man logrotate

Яровая требует длительного хранения логов.

и вносить изменения в эти же файлы.

УК РФ «потделка документов» ст. 324, 325, 326, 327 !!!

anonymous ()
Ответ на: комментарий от Denis777

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

требует, чтобы по каждой мелочи бегал от машины к машине

Пусть аргументирует.

Может сеть общая в здании? Попросите админа сети здания организовать вам VLAN. Или сделайте свою физическую сеть, надеюсь кабель каналы по вашему уровню безопасности разделять можно.

anonymous ()
Ответ на: комментарий от anonymous

Уставший бегать админ это не я, однокурсник. Всю секцию здания занимает клиника эта. Сеть как я понял у них отделенная. Вопрос стоит не в безопасности, а в самодурстве/«яжначальнике» и т.д. «Денег плачу тебе, вот и бегай, а то сидишь, ничего не делаешь». Взялся помочь… сам я в процессе приобщения к миру Linux. Тут писали про journalctl, он разве обращается не к файлам логов в каталоге /var/log/? Если их править сразу после отключения всеравно останутся следы? Попалось схожее решение на Perl, но даты логов вводятся вручную при запуске скрипта и скрипт выводит, а не удаляет строки логов. При попытке изменить под свою задачу - затуп). Может подскажет кто. Код ниже.

#!/usr/bin/perl -ws

This script parse logfiles for a specific period of time

sub usage {

printf "Usage: %s -s=<start time> [-e=<end time>] 

\n";

die $_[0] if $_[0];

exit 0;

}

use Date::Parse;

usage «No start time submited» unless $s;

my $startim=str2time($s) or die;

my $endtim=str2time($e) if $e;

$endtim=time() unless $e;

usage «Logfile not submited» unless $ARGV[0];

open my $in, «<» . $ARGV[0] or usage «Can’t open ‘$ARGV[0]’ for reading»;

$_=<$in>;

exit unless $_; # empty file

Determining regular expression, depending on log format

my $logre=qr{^(\S{3}\s+\d{1,2}\s+(\d{2}:){2}\d+)};

$logre=qr{^[^[]*[(\d+/\S+/(\d+:){3}\d+\s+\d+)]} unless /$logre/;

while (<$in>) {

/$logre/ && do {

    my $ltim=str2time($1);

    print if $endtim >= $ltim && $ltim >= $startim;

};

};

Denis777 ()
Ответ на: комментарий от Denis777

Вопрос стоит не в безопасности, а в самодурстве/«яжначальнике» и т.д. «Денег плачу тебе, вот и бегай, а то сидишь, ничего не делаешь».

Хочешь помочь ему, помоги найти другую работу. Как найдет пусть увольняется от «самодура».

Распределение рабочего времени админа: 1/3 текучие задачи, 1/3 системные и развитие, 1/3 образование и учеба. Админ не спортсмен, бегать не должен, беготня только вредит.

Может подскажет кто. Код ниже.

Потделка логов это потделка документов !!!

anonymous ()
Ответ на: комментарий от anonymous

ну да, ну да

потом дирехтор будет мониторить порт 22 - будем через ТОР заходить?
потом установит датчик движения на коридор и камеру - будем генетического двойника пускать?

Bers666 ★★★★★ ()
Ответ на: комментарий от Bers666

Итоговое решение - новая работа) Чуть менее удобно совмещать с учебой в институте, но в апреле уже едет на обучение от работы) Доволен) Всем спасибо! Тему можно закрывать.

Denis777 ()