Проверка конкретной даты в файлах с динамическими именами и создание журнала из него с помощью сценария оболочки

На самом деле не отвечаю на вопрос. но предлагая альтернативу... добавьте правило в системный журнал для пересылки всех сообщений на сервер, например.

*.*    @server.host.name

Если вы сделаете это,вам не нужно сохранять/var/log(по моему опыту, вы всегда будете заполнять свое постоянное хранилище, если у вас есть /var/logна нем).

Обратите внимание, что вам потребуется включить сетевой модуль в системном журнале на вашем сервере. -Как это сделать, зависит от того, какое программное обеспечение системного журнала вы используете. Вам также может понадобиться иметь дело с брандмауэрами (, обычно это порт UDP 514 ).

Также обратите внимание, что вам может потребоваться использовать IP-адрес вместо server.host.name, если ваш преобразователь DNS недоступен при запуске демона системного журнала.

Одним из (я считаю большим )преимуществом этого является то, что все ваши встроенные устройства могут вести журналы на одном сервере, а затем все журналы доступны в одном месте, -вы должны использовать правила сопоставления в программное обеспечение системного журнала вашего сервера для хранения сообщений с каждого устройства в отдельные файлы, названные в честь исходного устройства (иногда это может быть сложно настроить, но оно того стоит ).

0
02.05.2020, 21:35
1 ответ

баш

Если вы используетеbash(строка shebang вызывает sh, но вопрос помечен тегом bash), вы можете получить восемь символов перед точкой с помощью этого кода:

var=62810501601420200502.swt1
tmp="${var%.*}"
date_string="${tmp: -8}"

сед

С shвы можете использоватьsed:

date_string="$(printf %s "$var" | sed -r 's/^(.*)(.{8})\..*$/\2/')"

группа

Или сgrep:

date_string="$(printf %s "$var" | grep -oP '.{8}(?=\.)')"
0
28.04.2021, 23:16

Теги

Похожие вопросы