Как почистить логи в linux

Обновлено: 04.07.2024

Журналы - это один из самых важных источников информации при возникновении любых ошибок в операционной системе Linux. Я это уже много раз говорил ранее и вот сказал ещё раз. Раньше в Linux для сохранения журналов сервисов использовался отдельный демон под названием syslogd. Но с приходом системы инициализации systemd большинство функций касающихся управления сервисами перешли под её управление. В том числе и управление логами.

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

Синтаксис и опции journalctl

Синтаксис команды очень простой. Достаточно выполнить команду без опций или передав ей нужные опции. Если утилита не выводит ничего, выполните её от имени суперпользователя:

journalctl опции

А теперь давайте разберем основные опции journalctl:

Горячие клавиши journalctl

По умолчанию информация лога выводится в формате, в котором её можно листать. Давайте разберем горячие клавиши, которые вы можете для этого использовать:

Теперь вы знаете основные опции команды и клавиши, с помощью которых можно ею управлять. Дальше небольшая шпаргалка journalctl.

Шпаргалка по journalctl


Чтобы найти именно то, что вам нужно, необходимо научится перемещаться по этому списку. Формат вывода лога довольно простой:

янв 13 20:55:55 sergiy-pc kernel: Linux version 4.15.0-43-generic

Давайте перейдем к примерам фильтрации и перемещения.

1. Просмотр логов сервисов

sudo journalctl -xe


sudo journalctl -eu apache2.service


2. Просмотр логов в режиме tail

sudo journalctl -f

В этом режиме less не поддерживается, поэтому для выхода нажмите сочетание клавиш Ctrl+C.

3. Просмотр логов загрузки

В логе journalctl содержатся все логи, в том числе и логи загрузки. Для того чтобы открыть лог последней загрузки используйте опцию -b:

sudo journalctl -b

Посмотреть список всех сохраненных загрузок можно командой:

sudo journalctl -list-boots

sudo journalctl -b 37d5c906c9c6404682f029b2c34ec9dc


4. Фильтрация по дате

С помощью опции --since вы можете указать дату и время, начиная с которой нужно отображать логи:

sudo journalctl --since "2019-01-20 15:10:10"


Опция --until помогает указать по какую дату вы хотите получить информацию:

sudo journalctl -e --until "2019-01-20 15:05:50"

Или сразу скомбинируем две эти опции чтобы получить логи за нужный период:

sudo journalctl --since "2019-01-20 15:10:10" --until "2019-01-20 15:05:50"


Кроме даты в формате YYYY-MM-DD в этих опциях можно использовать такие слова, как yesterday, today, и tomorrow. Также допустимы конструкции 1 day ago (один день назад) или 3 hours ago (три часа назад). Ещё можно использовать знаки + и -. Например -1h30min будет означать полтора часа назад.

5. Журнал ядра

sudo journalctl -ek


6. Настройка формата вывода

По умолчанию journalctl выводит информацию с помощью утилиты less, в которой вы можете её удобно листать и просматривать. Но формат вывода можно изменить:

Чтобы указать нужный формат используйте опцию -o. Например:

sudo journalctl -o json-pretty

sudo journalctl -eo json-pretty

7. Очистка логов

Сначала нужно посмотреть сколько ваши логи занимают на диске. Для этого используйте такую команду:

sudo journalctl --disk-usage


Чтобы уменьшить размер лога можно использовать опцию --vacuum-size. Например, если вы хотите, чтобы ваши файлы журналов занимали на диске не более 2 Гб, выполните команду:

sudo journalctl --vacuum-size=2G


Теперь старые логи будут удалены, пока общий объем хранилища не будет составлять 2 гигабайта. Также можно удалять логи по времени. Для этого используется опция --vacuum-time. Например, оставим только логи за последний год:

Выводы

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Clearing-Tracks.jpg

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

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

Это, как правило, самый большой вектор ошибки нападающего и именно там профессионалы отсортированы от любителей.

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

  1. Очистить логи
  2. Изменить реестр или очистить
  3. Удаление любых файлов, которые вы создали


Система Linux

Файлы журнала хранятся в каталоге /var/log

- Редактирование файлов будет действительно не легким, я бы рекомендовал использовать инструмент под названием shred для удаления или изменения файла.

Что такое Shreed
Shreed - это инструмент, позволяющий удалить файл или данные навсегда и препятствующий восстановлению данных, поскольку он несколько раз перезаписывает файл с помощью 1 s и 0s (при удалении файла на компьютере он действительно не удаляется, он просто помечается как пространство, в которое можно записать данные)

Shred очень популярен при стирании жестких дисков и т.д., я использовал его много раз, прежде чем удалить или продать мои диски.

Параметры при использовании команды Shred

  • -f изменяет разрешения, чтобы разрешить запись при необходимости
  • -n (iterations = N) перезаписывает N раз вместо значения по умолчанию, которое составляет три раза
  • -s (размер = N) указывает количество байтов для уничтожения
  • -u обрезает и удаляет файлы после перезаписи
  • -v показывает подробную информацию о прогрессе
  • -x не округляет размеры файлов до следующего полного блока
  • -z добавляет окончательную замену нулями, чтобы скрыть измельчение
  • -u удаляет файл после перезаписи

/var/log/auth.log: логи аутентификации

/var/log/kern.log: логи ядра

/var/log/cron.log: журналы Crond (задание cron)

/ var / log / maillog: журналы почтового сервера

/var/log/boot.log: журнал загрузки системы


Чтобы стереть файл:

Shred -vfzu auth.log

История bash сохраняет запись всех команд, выполняемых пользователем в командной строке Linux.

Чистит полностью журнал, после очистки трет в 3 прохода свободное место.

Можно поиграть с расширениями логов которые пишут сторонние софты .bac, .log, .tmp и т.д

NewUSERSO

Как сказано выше нужно ручками себе скрипт накидывать под конкретные задачи, можно такой батник заюзать

Чистит полностью журнал, после очистки трет в 3 прохода свободное место.

Можно поиграть с расширениями логов которые пишут сторонние софты .bac, .log, .tmp и т.д

я так понимаю это для винды только? на линуксе не пойдет?

Valkiria

я так понимаю это для винды только? на линуксе не пойдет? Естественно, для дедиков Windows.
На русскоязычной версии Окон работает отлично. Можно запустить батник и отключиться от дедика. Батник самоликвидируется.

Bypass

Естественно, для дедиков Windows.
На русскоязычной версии Окон работает отлично. Можно запустить батник и отключиться от дедика. Батник самоликвидируется.

+ в начале задержку поставить нужно
Например будет
Запускаем скрыто


считает 30 сек и выполняется
30 сек хватит отконектится от дедика скрытый режим нужно чтобы при затирание логов окно cmd не моячило ибо затирание свободного места процедура не быстрая

Valkiria

А, вот ещё вариант батника для чистки логов на дедиках Windows.
Я этим пользуюсь.

Valkiria

Ещё существует вот такая программа для чистки логов на дедиках Windows.
Правда, не всем она придётся по душе ): нет открытого исходного кода

FfjhBl4RvHoYcgurhFN0Ev6g4Qoc9e.jpg

Valkiria

А ещё нашла у себя на HDD какую-то старую программулину для чистки логов.
Вот скриншот.
Программа древняя, предназначена была для работы в более ранних версиях Окон.

Pegd9ZLLLHLh21HXAiq8C0znQ0PaY0.jpg

Bypass

В топку школотулзы

forfiles.exe /p C:\ /s /m *.* /D 15.04.2018 /c "cmd /c del /q /f @file"

Только юзайте аккуратно )

/D 15.04.2018 (удалит все файлы которые были созданы сегодня)
/d -1 (старше одного дня)
Ну и тд

Вывод измененных сегодня файлов удобно посмотреть куда могли наследить

Описание.
Выбор файла (или набора файлов) и выполнение команды
с этим файлом. Программа полезна для пакетных заданий.

Параметры:
/P <путь> Путь, с которого начинается поиск.
По умолчанию используется текущая
рабочая папка (.).

/M <маска_поиска> Поиск файлов с помощью маски.
Маска поиска по умолчанию "*" .

/S Рекурсивное выполнение программы forfiles
во всех подпапках, аналогично "DIR /S".

/C <команда> Команда, которая выполняется для каждого файла.
Строки команд необходимо заключать в прямые
кавычки.

Команда по умолчанию "cmd /c echo @file".

Следующие переменные могут использоваться
в строке команды:
@file - возвращает имя файла.
@fname - возвращает имя файла без
расширения.
@Ext - возвращает только расширение имени
файла.
@path - возвращает полный путь к файлу.
@relpath - возвращает относительный путь к
файлу.
@isdir - возвращает значение "TRUE", если типом
файла является папка, и "FALSE" для файлов.
@fsize - возвращает размер файла
в байтах.
@fdate - возвращает дату последнего изменения
файла.
@ftime - возвращает время последнего изменения
файла.

То есть бывают действительно критические ситуации — в этих условиях перестают нормально работать многие программы и службы. Поэтому задача становится следующей: срочно любой ценой освободить место на диске, чтобы можно было продолжить обслуживание системы и перейти ко второму этапу — поиску директорий и папок, которые привели к этой проблеме из-за того, что стали занимать слишком много места.

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

  • перезапуск служб для их нормальной работы (чтобы они заново пересоздали файлы журналов, кэши, файлы блокировки)
  • могут быть потеряны различные журналы и файлы из корзины, которые хотя и не нужны большинству пользователей, в некоторых условиях вы можете захотеть их оставить (например, вам важно изучить файлы логов, поскольку в них может быть причина проблемы).

Это означает, что НЕ копируйте бездумно команды — читайте пояснения к ним и оценивайте, насколько они безболезненны для вашей ситуации.

1. Удаление временных файлов

Файлы в папке /tmp/ будут удалены в любом случае при следующей перезагрузки системы. То есть с одной стороны их можно удалить достаточно безболезненно:

НО: может быть нарушена работа программ, которые запущены в настоящее время и которые сохранили какие-то данные в папку /tmp/.

2. Удаление файлов кэширования

В директории /var/cache/ много поддиректорий, которые можно удалить практически безболезненно (данные утеряны не будут, а программы создадут новые файлы кэширования). Эта директория вызывает особый интерес, поскольку на которых системах кэши разрастаются на гигабайты и десятки гигабайт. Иногда поиск проблемной директории в /var/cache/ может окончательно решить ситуацию с нехваткой места на диске.

Для удаления кэша шрифтов:

Для удаления кэша установочных пакетов (на Debian, Linux Mint, Ubuntu, Kali Linux и их производных):

Для удаления кэша установочных пакетов (на Arch Linux, BlackArch и их производных):

Удаление кэша справочных страниц:

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

3. Удаление логов (журналов)

На веб-серверах могут разрастись слишком сильно журналы веб-сервера.

Для удаления логов Apache на Debian, Linux Mint, Ubuntu, Kali Linux и их производных:

Для удаления логов Apache на Arch Linux, BlackArch и их производных:

Чтобы сервер начал создавать новые файлы журналов и записывать в них, нужно перезапустить службу веб-сервера.

В зависимости от интенсивности использования системы, накопленные журналы могут занимать гигабайты. В зависимости от системы файлы могут называться по-разному, более точный анализ рекомендуется выполнять с помощью утилиты ncdu:

4. Очистите корзину

Этот совет больше для настольных систем. Файлы, которые вы удалили в графическом интерфейсе рабочего стола, попадают в папку

/.local/share/Trash/files/, вы можете проанализировать их и при желании удалить (второй раз):

5. Удаление ненужных файлов исходного кода заголовков ядра

Следующее актуально только для Debian, Linux Mint, Ubuntu, Kali Linux и их производных. Проверьте папку /usr/src/, там будут подпапки вида linux-headers- - большинство из них можно удалить — оставьте только ту, номер которой соответствует текущему ядру системы — обычно это самый последний номер выпуска.

6. Удаление осиротевших пакетов

Осиротевшие пакеты — это те пакеты (программы), которые устанавливались в качестве зависимостей для других программ. Но по разным причинам они больше не нужны: или удалена программа, которая их использовала, или для той программы они перестали быть зависимостями после обновления программы.


На Debian, Linux Mint, Ubuntu, Kali Linux и их производных удалить ненужные пакеты можно следующим образом:


Для Debian и производных предыдущая команда абсолютно безопасна.

В Arch Linux и производных список осиротевших пакетов можно увидеть следующим образом:

Прежде чем переходить к их автоматическому удалению, настоятельно рекомендуется изучить этот список!

Для рекурсивного удаления сироток и их конфигурационных файлов в Arch Linux и производных:


Если осиротевшие пакеты не были найдены, pacman завершит работу с ошибкой: ошибка: не задано целей (для справки используйте -h). Это ожидаемо, поскольку pacman -Rns не получил аргументов.

7. Очистка журналов systemd

Со временем, в некоторых системах логи системы начинают занимать гигабайты на жёстком диске. Просмотреть журналы и освободить место вы можете с помощью команды journalctl, подробности смотрите в статье «Как использовать journalctl для просмотра системных логов Linux».

Чтобы увидеть, сколько место занимают журналы, выполните:

Чтобы удалить все записи, оставив только записей на 100 мегабайт, выполните:

Либо для удаления всех записей в системном журнале, старше одной недели:

8. Файлы в директории /lost+found

В папку /lost+found сохраняются файлы, которые были найдены после проверки файловой системы диска. Обычно такие проверки выполняются после внезапной перезагрузки системы или в случае признаков проблем с диском.

Найденные файлы обычно повреждены. Их цель — сохранить данные, которые в случае исправления ошибок на файловой системе были бы совсем утеряны.

Папка /lost+found может быть пустой (если не было проблем с диском). В случае если там есть файлы, то вы можете их просмотреть и, при желании, удалить.

9. Очистка PHP сессий

Иногда веб-приложений из-за бага могут создать бесчисленное количество сессий. Проверьте директорию /var/lib/php/sessions/ на предмет слишком большого количества файлов.

(БОНУС) 10. Проанализируйте файлы Docker

Самой большой папкой является /var/lib/docker/overlay2/. Для анализа занимаемого места на диске выполните:

Заключение

Итак, мы рассмотрели, какие файлы можно удалить из Linux практически без потери информации. Кроме рассмотренных директорий, которые можно очистить как на удалённой системе с веб-сервером, так и на домашнем компьютере, пользователям с графическим рабочим столом следует обратить внимание на такие директории как:

Их НЕ нужно удалять, но стоит проанализировать. Например, вы можете выяснить, что веб-браузер на вашем компьютере имеет кэш в несколько гигабайт и что вы можете их освободить (рекомендуется делать средствами веб-браузера, а не удалять файлы напрямую).

Если я пропустил какие-то директории с файлами, которые можно безболезненно удалить, то пишите их в комментариях!

Читайте также: