Здесь мы рассмотрим ключевые файлы логов, какую информацию они хранят, как настраивается rsyslog для записи и как посмотреть информацию с помощью journalctl .
Журнал /var/log/syslog или /var/log/messages
Это «всеохватывающий» системный лог:
# logger «this is a test» # tail -1 /var/log/syslog May 7 15:33:11 ubuntu-bionic test-user: this is a test
Вы найдёте здесь все сообщения: ошибки, информационные сообщения и все другие серьёзности . Исключением является stop action .
Если в /var/log/syslog или /var/log/messages пусто, скорее всего, journald не перенаправляет данные в syslog. Все те же данные можно просмотреть, вызвав journalctl без параметров.
# journalctl —no-pager | grep «this is a test» May 07 15:33:11 ubuntu-bionic test-user[7526]: this is a test
Журналы /var/log/kern.log или /var/log/dmesg
Сюда по умолчанию отправляются сообщения ядра:
Apr 17 16:47:28 ubuntu-bionic kernel: [ 0.004000] console [tty1] enabled
И снова, если у вас нет syslog (или файл пустой/отсутствует) – используйте journalctl:
Linux для начинающих / Урок #7 – Команды поиска FIND, GREP
kern.* /var/log/kern.log
Журналы /var/log/auth.log или /var/log/secure
Здесь вы найдете сообщения об аутентификации, генерируемые такими службами, как sshd :
May 7 15:03:09 ubuntu-bionic sshd[1202]: pam_unix(sshd:session): session closed for user vagrant
Вот ещё один фильтр по значениям auth и authpriv :
auth,authpriv.* /var/log/auth.log
Вы можете использовать такие фильтры в journalctl, используя числовые уровни объектов :
# journalctl SYSLOG_FACILITY=4 SYSLOG_FACILITY=10 . May 7 15:03:09 ubuntu-bionic sshd[1202]: pam_unix(sshd:session): session closed for user vagrant .
Журнал /var/log/cron.log
Сюда отправляются ваши cron-сообщения (jobs-ы, выполняемые регулярно):
May 06 08:19:01 localhost.localdomain anacron[1142]: Job `cron.daily’ started
cron.* /var/log/cron
С journalctl можно сделать так:
# journalctl SYSLOG_FACILITY=9
Журнал /var/log/mail.log или /var/log/maillog
Практически все демоны (такие как Postfix, cron и т. д.) обычно пишут свои логи в syslog. Затем rsyslog раскладывает эти логи по файлам:
mail.* /var/log/mail.log
С помощью journald просматривать журналы можно так:
# journalctl SYSLOG_FACILITY=2
Подведём итоги
- Расположение и формат системных журналов Linux зависят от того, как настроен дистрибутив.
- Большинство дистрибутивов имеют systemd, и все логи «живут» там. Чтобы что-то просмотреть и найти, используйте journalctl.
- Некоторые дистрибутивы передают системные журналы в syslog, либо напрямую, либо через journal. В этом случае у вас, скорее всего, есть логи, записанные в отдельные файлы в /var/log .
- Если вы управляете несколькими серверами, вам потребуется централизовать журналирование с помощью специального ПО или использовать собственный ELK-стек.
Логгирование событий невероятно важная и серьёзная штука в любой сфере администрирования и ОС. Рекомендуем отнестись ответственно к данной теме – она будет полезна при дебагинге, разработке и просто в управлении инфраструктурой.
Linux для Начинающих — Навигация по файлам и директориям
Источники
Источник: proglib.io
как найти в Ubuntu где лежит папка с программой?
Но как найти где папка chrome? Перепыл всю систему не пойму. В windows просто нажал правой кнопкой и свойства и там путь. Что я не так делаю?
Ответы (2 шт):
Чаще всего хватает
whereis файл
Но если не находит, то можно поискать обычным способом
find / -name chrome
На моей убунте он установлен в /opt/google/chrome
Вообще, запускаемый файл браузера Chrome называется google-chrome или google-chrome-stable . Найти полный путь к запускаемому файлу можно командой:
which which google-chrome-stable
При условии, что файл находится в одной из папок, перечисленных в переменной окружения $PATH . Если это не так, найти его можно командой
find / -name
Но тогда и запустить его из консоли можно будет только как
/full/path/to/
Последняя команда найдет файл по имени, даже если он не запускаемый, если хватит прав.
Источник: husl.ru
Переменная окружения $PATH в linux
Когда в консоли Debian мы вводим какую-то команду или функцию, откуда он знает, где она лежит, как находит и запускает её или не находит и выдаёт ошибку? Объясняется это тем, что есть переменная, в которой хранятся пути до папок, в которых происходит поиск введённой команды (функции или скрипта). И если *nix находит соответствие заданному запросу, то запускает эту команду на исполнение (с дополнительными параметрами, если они введены) или выдаёт ошибку: «Пичалька, всё обыскал, но не понимаю, о чём ты спрашиваешь и чего хочешь.»
Как посмотреть значение переменной $PATH в Линукс
Для того, чтобы увидеть, какие папки при поиске заданной команды Линукс обходит в её поиске, достаточно вывести её значение с помощью команды echo :
echo $PATH
В результате получим список директорий (папок), в которых предположительно могут находиться запрашиваемые команды или программы, например:
[email protected]:/# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Как видно на примере выше, если список директорий состоит из более чем одной папки, они разделяются между собой символом двоеточия : .
Таким образом, можно понять, в каких папках Unix поискал (и не нашёл) нужной команды или программы, при неудачном стечении обстоятельств и тихо ругнулся:
[email protected]:/# RockNRoll -bash: RockNRoll: command not found
Однако, если данная команда и/или программа существует и вы точно знаете, где она лежит, можно прописать до неё путь (относительный или абсолютный) и тогда она отработает свой сценарий:
r[email protected]:/# /var/hlam/RockNRoll А то! Rock-N-Roll forever! =)
Где хранится значение переменной $PATH ?
Значение переменной $PATH (список папок) вычисляется в файле /etc/profile .
В некоторых источниках пишут ещё при использовании файла /etc/environment .
Где ещё применяется значение переменной $PATH в linux?
В linux могут использоваться различные языки программирования и для того, чтобы система могла понимать, какой интерпретатор использовать при выполнении программного кода, в начале после знака # используется путь до него. Если по этому пути ничего не найдено, то при запуске такого кода тоже будет выдана ошибка.
Так, например, bash-скрипты начинаются строчкой:
#!/bin/bash
А скрипты на языке программирования Perl, такой:
#!/usr/bin/perl
Резюме
Таким образом становится предварительно понятно, как происходит эта магия того, что компьютер может отвечать на какие-то запросы, выполняя требуемые действия при вводе определённых команд. 😉
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉
Источник: mb4.ru