Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
linux:overall:logs [2022/08/03 09:30] admin |
linux:overall:logs [2023/05/22 08:04] (текущий) admin |
||
---|---|---|---|
Строка 17: | Строка 17: | ||
* **-p** - приоритет. | * **-p** - приоритет. | ||
| | ||
- | | ||
- | ====Горячие клавиши==== | ||
- | * **Пробел (b)** - на одну страницу вниз (вверх). | ||
- | * **g (G)** - первая (последняя) строка. | ||
- | * **/ (n, N)** - поиск (следующее, | ||
- | |||
- | |||
- | |||
==== Управление файлами ==== | ==== Управление файлами ==== | ||
Задается максимальное доступное место на диске, по достижении, | Задается максимальное доступное место на диске, по достижении, | ||
Задается в параметрах **SystemMaxUse=** и **RuntimeMaxUse=** в файле **/ | Задается в параметрах **SystemMaxUse=** и **RuntimeMaxUse=** в файле **/ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | Перезагрузка считается инициированной входом в нее псевдопользователя " | ||
+ | <code bash> | ||
+ | # Врмя последней загрузки | ||
+ | who -b | ||
+ | |||
+ | # История логинов | ||
+ | last [имя пользователя] | ||
+ | |||
+ | # Так к вопросу о перезагрузке | ||
+ | last -x | head | tac | ||
+ | или | ||
+ | last reboot | ||
+ | |||
+ | # (подвопросом) Список зарегистрированных загрузок системы | ||
+ | journalctl --list-boots | ||
+ | # более подробная инфа | ||
+ | journalctl -b {num} -n | ||
+ | </ | ||
+ | </ | ||
Строка 92: | Строка 106: | ||
: | : | ||
</ | </ | ||
- | |||
- | |||
</ | </ | ||
Строка 129: | Строка 141: | ||
</ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | Сервер | ||
+ | <code bash> | ||
+ | $MaxMessageSize 64k | ||
+ | module(load = " | ||
+ | module(load = " | ||
+ | |||
+ | # Вход из файлов, | ||
+ | input(type=" | ||
+ | input(type=" | ||
+ | |||
+ | # Из метаданных файла берем имя файла и название папки оно же название импорта | ||
+ | set $.filename=field($!metadata!filename, | ||
+ | set $.importname=field($!metadata!filename, | ||
+ | |||
+ | # Формат выходного сообщения. К sysтегу добавляем имя импорта и имя папки | ||
+ | template(name=" | ||
+ | |||
+ | # Отправляем по сети | ||
+ | if ($syslogtag == ' | ||
+ | action(type=" | ||
+ | stop | ||
+ | } | ||
+ | |||
+ | if ($syslogtag == ' | ||
+ | action(type=" | ||
+ | stop | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | Клиент | ||
+ | <code bash> | ||
+ | $MaxMessageSize 64k | ||
+ | module(load=" | ||
+ | input(type=" | ||
+ | input(type=" | ||
+ | |||
+ | # Формат выходного сообщения | ||
+ | template(name=" | ||
+ | |||
+ | # Динамическое имя файла | ||
+ | template(name=" | ||
+ | template(name=" | ||
+ | |||
+ | ruleset(name=" | ||
+ | # Извлекаем из переданных данных имя файла и сервиса | ||
+ | set $.ffilename = replace($programname, | ||
+ | set $.ffilename = replace($.ffilename, | ||
+ | |||
+ | # Сохраняем в файл | ||
+ | action(type =" | ||
+ | fileOwner=" | ||
+ | dirCreateMode=" | ||
+ | } | ||
+ | |||
+ | ruleset(name=" | ||
+ | # Извлекаем из переданных данных имя файла и сервиса | ||
+ | set $.ffilename = replace($programname, | ||
+ | set $.ffilename = replace($.ffilename, | ||
+ | |||
+ | # Сохраняем в файл | ||
+ | action(type =" | ||
+ | fileOwner=" | ||
+ | dirCreateMode=" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
Строка 135: | Строка 218: | ||
===== Ротация файлов. Logrotate ===== | ===== Ротация файлов. Logrotate ===== | ||
[[https:// | [[https:// | ||
+ | [[https:// | ||
+ | |||
Утилита **Logrotate**, | Утилита **Logrotate**, | ||
Строка 141: | Строка 226: | ||
Без порядковых номеров ротация перестает работать\\ | Без порядковых номеров ротация перестает работать\\ | ||
- | Поэтому **часовой интервал игнорируется**, | + | Основной конфиг запускается раз в день, поэтому **часовой интервал игнорируется**, для часа можно поместить в **/ |
<code bash> | <code bash> | ||
# Создали файл конфига | # Создали файл конфига | ||
Строка 147: | Строка 233: | ||
# Запускаем вручную (-d для тестирования) | # Запускаем вручную (-d для тестирования) | ||
- | logrotate / | + | logrotate / |
# Добавляем в крон | # Добавляем в крон | ||
"15 * * * * / | "15 * * * * / | ||
</ | </ | ||
+ | |||
Ротировать можно как регулярно (**по времени**) так и **по размеру** файла\\ | Ротировать можно как регулярно (**по времени**) так и **по размеру** файла\\ | ||
Можно выполнять скрипты до и после ротации\\ | Можно выполнять скрипты до и после ротации\\ | ||
+ | |||
+ | Параметры: | ||
+ | * **hourly/ | ||
+ | * **rotate 3** - хранить 3 последних файла | ||
+ | * **size** - планка размера для ротирования (size 100, size 100k, и size 100M) | ||
+ | * **compress** - сжимать | ||
+ | * **delaycompress** - кроме последнего и предпоследнего | ||
+ | * **dateext** - к имени архивного файла добавляется дата ротации в формате (%Y%m%d) вместо номера | ||
+ | * **copytruncate** - ротируется копия, оригинал урезается | ||
+ | * **create** - ротируется оригинал, | ||
Строка 162: | Строка 259: | ||
/ | / | ||
{ | { | ||
- | daily | + | |
- | rotate 3 # хранить 3 последних файла | + | rotate 3 # хранить 3 последних файла |
- | size 10M # при условии что файл не меньше 10мб | + | compress # сжимать |
- | compress # сжимать | + | delaycompress # кроме последнего и предпоследнего |
- | delaycompress # кроме последнего и предпоследнего | + | dateext # к имени архивного файла добавляется дата ротации в формате (%Y%m%d) вместо номера |
} | } | ||
</ | </ | ||
- | Для | + | |
+ | Если переименовываем файл после ротации. **Его нужно перемещать** создавать копию, без номеров ротация перестает работать\\ | ||
<code bash> | <code bash> | ||
/ | / | ||
Строка 181: | Строка 279: | ||
} | } | ||
</ | </ | ||
- | |||
</ | </ | ||