- `tail -f /var/log/*` - логи (`-f` - обновление в реальном времени) - `journalctl` - утилита для просмотра логов служб, управляемых `systemd` - `-u ` - просмотр логов конкретной службы ```bash journalctl -u nginx ``` - `journalctl -u nginx -f` - просмотр логов в реальном времени - `journalctl -n 100` - последние 100 строк - `journalctl --since "2024-10-03 12:00:00" --until "2024-10-03 14:00:00"` - логи за конкретный период - `journalctl -p err` - можно показывать только ошибки - emerg (0): Аварийные сообщения. - alert (1): Требуют немедленных действий. - crit (2): Критические ошибки. - err (3): Ошибки. - warning (4): Предупреждения. - notice (5): Важные события. - info (6): Информационные сообщения. - debug (7): Отладочные сообщения. - `journalctl -xe` - x (или --catalog) — выводит дополнительные объяснения (аннотации) к некоторым сообщениям журнала. Это помогает понять детали ошибок или предупреждений, предлагая описания и возможные решения, если такие есть. - e (или --pager-end) — открывает журнал в режиме постраничного просмотра и сразу прокручивает его до конца, показывая самые последние записи. - `journalctl -u SDWL_Downloader_8090.service -xe` - `sudo journalctl --disk-usage` - `sudo journalctl --vacuum-size=1G` - максимально допустимый размер для хранимых на диске логов - `sudo journalctl --vacuum-time=1years` - максимально допустимый время для хранимых на диске логов --- - `tail -f` следит за файлом и выводит новые строки по мере их добавления в файл. Однако, если файл будет удалён и создан заново (например, при ротации логов), `tail -f` перестанет отслеживать файл, потому что он будет считать, что файл исчез. - `tail -F` делает то же самое, но в случае удаления файла и его создания заново, `tail -F` продолжит отслеживать файл. Это полезно для логов, так как они могут быть перезаписаны, но вы хотите продолжать их отслеживать, несмотря на изменения имени файла или его создание заново. Используйте опцию -F, если производится слежение за автоматически архивируемыми файлами журналов, например, с помощью logrotate. В этом случае слежение за файлом будет происходить даже в случае его переименования, пересоздания или удаления. --- ``` /var/log/messages { size 100M # Ротация, если размер превышает 100 МБ rotate 10 # Хранить до 10 архивов compress # Сжимать старые файлы delaycompress # Откладывать сжатие на один цикл missingok # Игнорировать, если файл отсутствует notifempty # Пропускать пустые файлы sharedscripts # Пост-скрипт выполняется один раз для всех postrotate /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true endscript } ``` - `logrotate -d /etc/logrotate.d/app` - `logrotate -f /etc/logrotate.d/app`