Linux: journalctl

#linux #logging #lines

#linux #ведение журнала #строки

Вопрос:

Я хотел бы просматривать только сообщения журнала, созданные в течение указанного периода времени (08:00 — 11:00) за ВСЕ дни.

Если я использую:

 journalctl --since 08:00 --until 11:00
  

Он отображает журналы только за текущий день.

Есть идеи?

Ответ №1:

Прежде всего — где ваш файл журнала journalctl? По умолчанию journalctl собирает журналы с момента запуска системы.

По умолчанию файл журнала находится в /var/log/journal. Если этот каталог не существует, установите Storage=persistent в /etc/systemd/journald.conf и запустите systemctl restart systemd-journald.

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

 # Define year
year="2016"

# Defines the month in which you want to search
months=(08 09 10)

for i in "${months[@]}" ; do

   # To set a range of days: 14 - 20
   for j in `seq 14 20` ; do
      journalctl --since "${year}-${i}-${j} 08:00:00" --until "${year}-${i}-${j} 11:00:00" >> /tmp/journal.${year}-${i}-${j}.log
   done

done
  

Если вы хотите проверить дни с 1 по 9, вероятно, потребуется добавить механизм добавления 0 (01, 02, 03, …, 09).

Это пример, поэтому вы должны настроить его в соответствии с вашими потребностями.