Автор Тема: а где после такого вот обновления можно найти его логи?  (Прочитано 16845 раз)

Оффлайн K0T

  • Завсегдатай
  • *
  • Сообщений: 215
  • Simply 7.0.5
    • Email
Цитата: rusland
https://www.altlinux.org/Journald
Фильтрация по дате и времени
...
Важны два параметра:
 --since и --until
в вики как-то не очень понятно или красиво это описано, одни конкретные примеры
для шпаргалки/заметки наверно будет понятнее:

ключи --since и --until.
в качестве значений для этих ключей могут использоваться:

— Формат YYYY-MM-DD HH:MM:SS
journalctl --since "2017-05-05 00:01" --until "2017-05-06 01:40"

— Слова «yesterday», «today», «tomorrow», «now»:
journalctl --since "yesterday" --until "2017-05-06 01:40"

— Удобочитаемые выражения вида:
journalctl --since "10 hours ago"
journalctl --since "1 minute ago"
journalctl --since "50 minute ago" --until "5 minute ago"

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

и в продолжение темы про логирование systemd, в частности про то что настроено по умолчанию в Simply:
насколько я понял journald по умолчанию удаляет логи не по времени а по объёму(10% от размера раздела - ?), т.е.
# du -sh /var/log/journal/
121M /var/log/journal/
# journalctl --disk-usage
Archived and active journals take up 120.0M on disk.

и при необходимости правится
/etc/systemd/journald.conf
SystemMaxUse=100M
а ротации старых логов и их упаковки в архивы нет

Команда, которая показывает нам список всех загрузок системы
# journalctl --list-bootsчерез полчаса работы дает очень странный эфффект
« Последнее редактирование: 19.11.2017 13:44:19 от K0T »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Цитата: rusland
https://www.altlinux.org/Journald
в вики как-то не очень понятно или красиво это описано, одни конкретные примеры

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

А вы думаете Леннарт написал лучше? :-)
То что написал Леннарт в своей книге, это скорее публицистика, чем техническая литература, - раздел Работа с Journal в книге Леннарта Поттеринга.
Но всё же попробуйте её почитать, возможно что-то увидите полезное:
(перевод книги Леннарта на русский в pdf)
http://www2.kangran.su/~nnz/pub/s4a/
Но при чтении книги будьте внимательны и обращайте внимание на комментарии: Леннарт в своей книге сам признаётся что он читер.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Команда, которая показывает нам список всех загрузок системы
# journalctl --list-bootsчерез полчаса работы дает очень странный эфффект

:-) Не странный, а страшный, - загрузку процессора более чем на 50 процентов.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
а ротации старых логов и их упаковки в архивы нет

:-) Журнал systemd, это как реестр Windows.
Он только называется одним словом, из-за чего создаётся обманчивое представление, что это что-то одно.
Но на самом деле, это не ASCII и это не один файл.
И этот журнал вы можете посмотреть только его личным windows regedit, - journalctl:
# ls -l /var/log/journal/чтототамбольшое/
итого 16388
-rw-r-----  1 root systemd-journal 8388608 окт 27  2016 system.journal
-rw-r-----+ 1 root systemd-journal 8388608 окт 27  2016 user-500.journal
# file /var/log/journal/чтототамбольшое/*.journal
/var/log/journal/чтототамбольшое/system.journal:   data
/var/log/journal/чтототамбольшое/user-500.journal: data

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
для шпаргалки/заметки наверно будет понятнее:

ключи --since и --until.
в качестве значений для этих ключей могут использоваться:

— Формат YYYY-MM-DD HH:MM:SS
journalctl --since "2017-05-05 00:01" --until "2017-05-06 01:40"

— Слова «yesterday», «today», «tomorrow», «now»:
journalctl --since "yesterday" --until "2017-05-06 01:40"

— Удобочитаемые выражения вида:
journalctl --since "10 hours ago"
journalctl --since "1 minute ago"
journalctl --since "50 minute ago" --until "5 minute ago"

С grep вы можете выбирать произвольные диапазоны времени:

Показать лог за 48-ю и 49-ю минуты
символы в скобках: или этот, или этот
$ LC_ALL=C journalctl --file=/var/log/journal/5b5/user-500.journal | grep 'Oct 27 21:4[89]'

Показать лог с 50-ой по 55-ую минуты
$ LC_ALL=C journalctl --file=/var/log/journal/5b5/user-500.journal | grep 'Oct 27 21:5[0-5]'

С grep вы можете создавать и более сложные запросы произвольного диапазона времени:
показать лог за 48-ю, 49-ю и 50-ю минуты
$ LC_ALL=C journalctl --file=/var/log/journal/5b5/user-500.journal | grep -E 'Oct 27 21:(4[89]|50)'

Или с 48-ой минуты по 53-ю
$ LC_ALL=C journalctl --file=/var/log/journal/5b5/user-500.journal | grep -E 'Oct 27 21:(4[89]|5[0-3])'

Создавая более сложные выражения, можно задать выборку по дате с точностью до секунд.
В таких сложных конструкциях не забывайте только указывать опцией, что это регулярное выражение.

Но учтите, что пользователь состоящий в группе systemd-journal, может прочесть любой журнал systemd, включая системный журнал и журнал любого пользователя. Даже если этот пользователь никакими другими привилегиями не обладает.
« Последнее редактирование: 19.11.2017 22:23:47 от Speccyfighter »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 307
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
для шпаргалки/заметки наверно будет понятнее:
Поправил Wiki по вашим примерам

Оффлайн K0T

  • Завсегдатай
  • *
  • Сообщений: 215
  • Simply 7.0.5
    • Email
Цитата: ruslandh
Поправил Wiki по вашим примерам

похоже мы тут не только решили вопрос, но и сделали что-то полезно для всех  :-)

Speccyfighter'у отдельное спасибо за ссылку на литературу, а также за темы
Приёмы профессиональной работы в shell (справочник - вопросы не задавать. )
Приёмы профессиональной работы в shell - обсуждение
почему-то вспоминаются старые, добрые брошюрки/блокнотики "Справочник по основным командам MS DOS"  :-)

и, как заметки себе, следующие вопросы на будущее:
- Настройка и управление логированием
- Уменьшение времени загрузки Systemd


как оффтоп, но проблема:

Команда, которая показывает нам список всех загрузок системы
# journalctl --list-bootsчерез полчаса работы дает очень странный эфффект
...
:-) Не странный, а страшный, - загрузку процессора более чем на 50 процентов.
и вдобавок сжирала 2 гига памяти и 2 гига свопа  :'-(

решилась удалением старых (ненужных, лишних-?) файлов из папки (скорее всего оставались от установки)
ls -l /var/log/journal/7dba617ab6bb9e46d8751c1e59bffe0d
итого 81928
-rw-r-----+ 1 root systemd-journal 75497472 ноя 20 18:16 system.journal
-rw-r-----+ 1 root systemd-journal  8388608 ноя 20 18:15 user-500.journal



Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Цитата: ruslandh
Поправил Wiki по вашим примерам

похоже мы тут не только решили вопрос, но и сделали что-то полезно для всех  :-)

:-) В этом и есть суть комьюнити.


Speccyfighter'у отдельное спасибо за ссылку на литературу, а также за темы
Приёмы профессиональной работы в shell (справочник - вопросы не задавать. )
Приёмы профессиональной работы в shell - обсуждение
почему-то вспоминаются старые, добрые брошюрки/блокнотики "Справочник по основным командам MS DOS"  :-)

:-) Каждая вторая книга тогда заканчивалась справочником по командам. Но времена меняются.
Присоединяйтесь. Возможно какие-то свежие мысли и наработки есть и у вас.
Иногда есть смысл собирать всё это в ascii файл и отправлять в бэкап или хотя бы в облако, но при этом не светить важные вещи: самый безопасный ноутбук это тот, у которого выдернули кабель и аппаратно выключили вайфай с блютусом, программно которые включить невозможно.


как оффтоп, но проблема:

Команда, которая показывает нам список всех загрузок системы
# journalctl --list-bootsчерез полчаса работы дает очень странный эфффект
...
:-) Не странный, а страшный, - загрузку процессора более чем на 50 процентов.
и вдобавок сжирала 2 гига памяти и 2 гига свопа  :'-(

Пф-ф-ф-ф... Не, ну вы умеете задавать вопросы :-)
И это уже точно не офтоп.
Всё не так просто как кажется на первый взгляд.
С такой ошибкой systemd, появляется риск получить компьютер впавший в ступор не только из-за процессора, но и по вине дисковой подсистемы. Вернее это не их вина.
Такие баги ни при каких условиях не должны попадать в стабильный репозиторий. Любые отговорки и оправдания здесь, я воспринимаю как отмазки и разгильдяйство. Инициализация и журналирование это не тот случай.

Если у вас не один тяжёлый процесс, вы рискуете получить нулевой idle и загруженную по самое небалуйся подсистему ввода/вывода. И вариантов у вас здесь немного.
Первая причина кроется в альтах: альты выламывают шедулеры оставляя только два из них, один из которых бесполезен чуть более чем совсем и здесь у вас выбор невелик. Вернее его нет совсем.
Когда-то их у альтов было дефолтом штуки четыре. И по ситуации, к месту мог быть любой из них.
Почитайте про них:
https://www.opennet.ru/base/sys/io_scheduler_linux.txt.html
https://www.opennet.ru/base/sys/linux_shedulers.txt.html
Обратите внимание на ключевые фразы:
- Другими  словами,  из  очереди  извлекается  одна программа, которая и получает практически  монопольный  доступ к диску. Пока эта программа работает, все  остальные  ожидают в очереди.

Но один вариант остаётся, - это понизить приоритет процесса, с которым есть риск ввести систему в ступор:
https://www.opennet.ru/tips/1684_nice_ionice_cfq_scheduler_backup_kernel_linux.shtml

Разные Линукс по-умолчанию используют разные шедулеры
# cat /sys/devices/pci0000:00/0000:00:1f.1/ata1/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler
noop deadline [cfq]
# cat /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host2/target2:0:0/2:0:0:0/block/sdb/queue/scheduler
noop deadline [cfq]

Но если что, вы можете загрузить модуль шедулера и вручную,
# modprobe cfq-iosched

переключиться на него и последить за поведением системы
# cat /sys/devices/pci0000:00/0000:00:1f.1/ata1/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler
noop [deadline] cfq
# echo cfq > /sys/devices/pci0000:00/0000:00:1f.1/ata1/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler
# cat /sys/devices/pci0000:00/0000:00:1f.1/ata1/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler
noop deadline [cfq]

Если этот шедулер подходит больше, этот модуль можно добавить в
/etc/modules
как имя модуля без расширения.

Оперативная смена шедулера
# echo cfq > /sys/block/sda/queue/scheduler

Если хотите чтобы он был фиксированным, установите пакет sysfsutils, запустите сервис sysfs и в файл
/etc/sysfs.conf

впишите строку
block/sda/queue/scheduler = cfq

Перезапустите сервис sysfs.


решилась удалением старых (ненужных, лишних-?) файлов из папки (скорее всего оставались от установки)
ls -l /var/log/journal/7dba617ab6bb9e46d8751c1e59bffe0d
итого 81928
-rw-r-----+ 1 root systemd-journal 75497472 ноя 20 18:16 system.journal
-rw-r-----+ 1 root systemd-journal  8388608 ноя 20 18:15 user-500.journal

Жаль что вы не сохранили выбросов в терминал.
Но в любом случае это напрашивается на багрепорт.
Такого не должно быть ни при каком раскладе:
Но даже с IDE винчестером 4200 rpm, эта команда не должна превышать одной секунды
# time -f %E journalctl --list-boots
 0 b4ec07ddb954425bb0880b320fadc1a7 Thu 2016-10-27 21:47:48 +03—Thu 2016-10-27 21:59:57 +03
0:00.45

Вообще-то я не люблю светить идентификаторы, но в данном случае для системы на sysv это значения не имеет. А это именно идентификатор и эта команда выдаст содержимое:
# journalctl -b b4ec07ddb954425bb0880b320fadc1a7

ИМХО:
Касательно этой темы, здесь сложность в том, что здесь пересекаются множество вещей и это не одна проблема сама в себе.
« Последнее редактирование: 21.11.2017 06:51:51 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
# time -f %E journalctl --list-boots
 0 b4ec07ddb954425bb0880b320fadc1a7 Thu 2016-10-27 21:47:48 +03—Thu 2016-10-27 21:59:57 +03
0:00.45

А это именно идентификатор и эта команда выдаст содержимое:
# journalctl -b b4ec07ddb954425bb0880b320fadc1a7

:-) Представил как этот идентификатор набивается руками на сервере без Х-сов. Ну или на десктопе у которого рухнули Х-сы.