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
() автор топика
Ответ на: комментарий от Denis777

Мысль такая - подключился, прогтологу Иванову украденный интернет нашел, при отключении скрипт «не было ничего»)

Denis777
() автор топика

Запусти там tmate и заходи по мере надобности. Или иным способом пробрось ЗАЛОГИНЕННЫЙ tty.

Bers666 ★★★★★
()

Менять sed'ом логи это бред. Что будет, когда начальник осилит journalctl? Там не поудаляешь.

Bers666 ★★★★★
()
cp log log_orig
grep log lalala > log

Но если он смотрит через tail -f, то тот всё спалит.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)

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

man logrotate

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

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

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

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

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

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

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

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

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

прогтологу Иванову

от слова «программист»

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
()

Типичный айтишник, решает человеческую\ гуманитарную\ организационную проблему скриптом.

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

Если руководитель может удаленно смотреть логи, то админ может удаленно же анализировать и исправлять проблемы.

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

Спасибо за помощь!) В первую очередь юридическую)

Denis777
() автор топика

Грузи логи в базу данных, а там уже человеческими средствами удаляй.

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

ну да, ну да

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

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

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

Denis777
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.