Sorry, you have been blocked
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 7d99cb227d4b2492 • Your IP: Click to reveal 88.135.219.175 • Performance & security by Cloudflare
How to Empty System Log Files in Linux
Logging is a normal operation that the Linux operating system performs constantly to maintain different types of messages in various log files.
If you’re maintaining a Linux server, it’s most likely that you might have come across an issue of running out of disk space. In such a situation, emptying huge log files mainly resolve the problem.
Using the rm command to directly delete log files is what you should avoid as it can leave you in a messed up situation. In this article, we’ll see various methods to clean up log files in Linux without deleting the actual file entirely.
Create A Sample Log File
Before we jump to the main topic, let’s first create a sample log file on which we’re going to perform operations. The same steps you can follow for your desired log files by using the sudo privileges.
To make a sample log file, you can use the fallocate utility using the below command:
It will give us a file with a 5MB size, which you can verify using the ls command.
List Files by Size in Linux
Clear Logs in Linux Using Cat Command
Concatenating the popular cat command with the /dev/null device file in Linux, you can easily empty the content of a log file.
In case you don’t know, /dev/null is a special file in Linux that helps in disappearing anything written or streamed to it returning the empty output.
To clear or empty any log file, just issue the following command.
Clear Log File in Linux
As you can see, instead of completely deleting the file, the command only removed the file content making its size zero.
Use Redirection Operator To Clear Log In Linux
Redirection Operator (>) is one of the easiest ways to empty the log files in the Linux operating system. Just using the redirection operator with the log filename on the right side and nothing on the left side redirects Null to the file by making it blank.
Empty Log File in Linux
Empty Log File Using ‘true’ Command In Linux
Attaching the colon (:) symbol to the left of the redirection operator makes another built-in true command that also does the same work as the redirection operator.
You can use it as given below:
Likewise, you can add true in place of :> symbol to perform the same task.
Clear Logs in Linux Using Truncate Command
As the meaning of the name says “removing part of something”, truncate is also yet another Linux utility that helps to free up space by shrinking the size of the file without deleting the file entirely.
You can utilize the truncate Linux command with the -s option that defines the file size to empty a file content. Giving a size of zero (0) is equivalent to making file content NULL or adjusting the file size to 0 bytes.
Clear Logs Using Truncate Command
As you can see in the above screenshot, we create a file app.log with a size of 5MB. Then, using a truncate command, we readjusted its size to zero without deleting the file itself.
Clear Log In Linux Using dd Command
I’m sure you must have used the dd (disk/data duplicator) command line utility to create a bootable USB without destroying your disk. The way you copy an image file to a USB boot drive, likewise, you can write blank off to your log file by just changing the input and output file.
Clear Logs Using dd Command
Here, “if” denotes the input file that you want to write to the output file as denoted by “of” .
Truncate Logs In Linux Using Echo Command
The echo command is mainly used to print or send messages in the terminal. The same functionality of the echo command can utilize to send a null output to the log file.
Simply run the below command to redirect the empty to the file:
Truncate Logs In Linux
However, if you see in the above screenshot, the file size is still not zero meaning the file is not completely empty. This is because we redirected an empty string which is not the same as NULL.
So, to send a null output to the file and make file size zero, you also need to use the -n flag with the echo command that restricts any trailing newline or leaving any empty line as happened in the above case.
Now the file size becomes zero and there is no content in the log file.
Clear Logs In Linux Using Logrotate Tool
Coming to the last and considered one of the best-automated methods, you can also use a logrotate tool that is built specifically to manage logs. It helps in the automatic rotation, compression, and removal of log files.
Check out the separate article on how to rotate logs with Logrotate in Linux for more information.
Finally, we learned to use different command line utilities to clear logs without deleting the files entirely in the Linux operating system. You can explore each command separately to use it along with Cronjob to automate the clean-up of logs at regular intervals of time.
как чистить логи linux
Гостевая статья Как очистить записи и журналы в Linux
Почему это важно?
Сокрытие записей является заключительным этапом процесса тестирования проникновения перед написанием отчета. Он предполагает очистку или стирание всей активности злоумышленника, чтобы избежать обнаружения.
Так что это жизненно важно в цикле тестирования проникновения, теперь с оборонительной точки зрения это действительно может проверить обработчики инцидентов и синяя команда и проверить их способность обнаружить нападающего и найти все, что нападающий, возможно, забыл очистить.
Это, как правило, самый большой вектор ошибки нападающего и именно там профессионалы отсортированы от любителей.
С точки зрения злоумышленников, он/она должен уклоняться от обнаружения с помощью IDS, тем самым предотвращая любые действия по реагированию на инциденты, и должен очищать любые журналы или бэкдоры, которые могут быть обнаружены группой судебно-медицинской экспертизы.
Файлы журнала хранятся в каталоге /var/log
— Редактирование файлов будет действительно не легким, я бы рекомендовал использовать инструмент под названием shred для удаления или изменения файла.
Shred очень популярен при стирании жестких дисков и т.д., я использовал его много раз, прежде чем удалить или продать мои диски.
Параметры при использовании команды Shred
/var/log/auth.log: логи аутентификации
/var/log/kern.log: логи ядра
/var/log/cron.log: журналы Crond (задание cron)
/ var / log / maillog: журналы почтового сервера
/ var / log / httpd /: каталог доступа и журналов ошибок Apache
/var/log/boot.log: журнал загрузки системы
Чтобы стереть файл:
История bash сохраняет запись всех команд, выполняемых пользователем в командной строке Linux.
Как чистить логи linux
Логируется всё, что может быть залогировано: команды пользователя, действия программ, трафик, подключения к системе и т.д. и т.п. Правило «Чисти логи два раза в день» ещё ни кто не отменял, и это понятно, ведь по логам, можно обнаружить атаку или постороннего пользователя в системе. Если хакер не очистил логи, его присутствие может быть обнаружено, так же по логам можно выяснить, как хакер проник в систему, что он делал после проникновения и т.д., проще говоря, составить хронологию его действий, и, возможно даже вычислить взломщика. Что для последнего является весьма не желательным.
Для того, чтобы скрыть факт атаки и своё присутствие в системе, хакеры обычно очищают логи на захваченной машине (руткиты не рассматриваются).
Логи хранятся не только на удалённой машине, но и на роутере (маршрутизаторе), через который идёт обмен данными, а так же на машине самого хакера. По этому важно очищать логи не только на удалённой машине, но и на роутере, и на своей собственной машине (имеется в виду ЭВМ, а не автомобиль).
2. Очистка лог файлов
В введении уже было сказано о логах и необходимости их очистки, как на захваченной и промежуточной машинах, так и на собственной. Тем не менее, повторюсь, компрометирующим материалом являются не только логи сервера (и промежуточной машины), но и логи вашей собственной машины (ПК, ноутбук и т.д.). Ведь если вы не очистите логи у себя, то эти же ваши логи, могут стать доказательством вашей причастности или вины, если вы провернули какое-то дело и вас нашли.
В любом случае, перед каждой вылазкой на вардрайвинг, рекомендуется использовать ARP-Spoofing, чтобы подменить MAC-адрес своего Wi-Fi адаптера, а после вылазки, зачищать у себя логи.
3. Wardriver Log Cleaner
В 2013 году (месяц не помню) я заинтересовался очисткой лог файлов под Linux, и в процессе исследования, написал простой лог клинер. Позже я его немного доработал и забросил. Относительно недавно заинтересовался вардрайвингом, вспомнил про лог клинер и решил довести его до ума, сделав из простого чистильщика, программу, пригодную к использованию в боевых условиях.
Начиная с версии 0.3, программа получила название «Wardriver Log Cleaner» (рисунок 1).
Принцип работы лог клинера
Очистка лог файлов выполняется через временный файл. Перед началом очистки логов, программа сохраняет дату/время последнего доступа и модификации лог файла. Из лог файла во временный файл копируется вся информация, кроме той, которую требуется скрыть. После чего временный файл заменяет собой лог файл. Затем для очищенного лог файла выставляется сохранённая дата/время.
Таким образом «Wardriver Log Cleaner» надёжно очищает лог файлы, удаляя лишь нужные записи, при этом, лог файл доступен для дальнейшего протоколирования.
Так же «Wardriver Log Cleaner», не оставляет за собой следов (временные файлы, дампы и т.д.), и, что очень важно, не изменяет дату/время доступа/модификации лог файла.
Запуск лог клинера без аргументов, выдаст следующую подсказку (рисунок 2).
Возможности применения
Использовать лог клинер, можно как на своей машине для очистки локальных логов, так и на удалённой. Например, получив доступ к серверу, можно загрузить на него лог клинер, очистить логи на «Системном» и «Прикладном» уровнях, и стать невидимым для администратора, скрыв сам факт атаки на сервер.
При проникновении в Wi-Fi сеть, так же рекомендуется выполнять (ручную) очистку логов на роутере (маршрутизаторе).
4. Локальная очистка логов на «Системном» уровне
Хакер вошёл в систему под логином evilhacker, с терминала tty3 (рисунок 3).
Из рисунка 8 видно, что лог клинер выполнил очистку логов на «Системном» уровне для пользователя evilhacker на терминале tty3. Были очищены все файлы из списка, кроме /var/log/audit/audit.log и /var/log/security. Эти два файла не были очищены, т.к. они отсутствуют в системе.
Очистка логов завершена, проверим вывод утилит who, w, last и lastlog (Рисунки 9, 10 и 11).
5. Удаленная очистка логов на «Системном» и «Прикладном» уровнях
На данном этапе будет продемонстрирована удалённая очистка лог файлов на сервере. IP-адрес сервера представлен на рисунке 18.
Таким образом, администратор, изучив логи, может восстановить хронологию действий хакера, понять, как он проник в систему и что он сделал дальше. Так же появляется возможность заблокировать хакера, и предотвратить повторное вторжение в систему.
На рисунке 26 показана работа лог клинера по очистке логов в удалённой системе на «Системном» и «Прикладном» уровнях.
Таким образом, хакер очистил логи на «Системном» и «Прикладном» уровнях удалённой системы, скрыв факт атаки и своего присутствия на захваченной машине. Администратор может полагать, что посторонних пользователей в системе нет, хотя на самом деле это не так. Очистив логи, хакер может оставаться скрытым от администратора и продолжать развивать атаку.
6 Локальная очистка логов на «Параноидальном» уровне
На этом уровне выполняется очистка множества лог файлов и директорий на локальной машине. В качестве примера, будет приведена очистка директории .armitage/, и файла .msf4/history.
После работы в msfconsole, Metasploit сохраняет историю в файле .msf4/history, содержимое которого представлено на рисунке 34.
Таким образом, «Wardriver Log Cleaner» выполняет очистку на «Параноидальном» уровне, уничтожая нежелательные логи (историю), заметая все следы деятельности хакера на локальной машине.
Заключение
Статья получилась довольно объемная, но теперь она подошла к концу, и я хочу поблагодарить всех, кто проявил интерес и настойчивость, и прочитал её до конца. Надеюсь, вы узнали для себя что-нибудь новое и полезное.
Заметаем следы вместе с хакерами. Чистим логи и историю Bash на взломанных Linux системах
Последним этапом деятельности любого хакера является заметание следов.
Автор: DRD_, Cyber Weapons Lab
Последним этапом деятельности любого хакера является заметание следов. Киберпреступник удаляет следы своей деятельности и логи, чтобы избежать обнаружения. Данный этап особенно важен, если злоумышленник в будущем планирует снова получить доступ к целевому устройству.
Для демонстрации основ заметания следов, сначала скомпрометируем цель, а затем изучим несколько методов, используемых для удаления истории Bash и очистки логов после взлома Linux систем.
Шаг 1. Скомпрометируйте цель
Шаг 2. Создайте легко удаляемый скрытый каталог
Получив root-доступ, мы можем создать скрытый каталог для работы и хранить в нем любые скрипты или файлы. С одной стороны, подобные манипуляции обманут лишь самого начинающего администратора, но дополнительный уровень защиты определенно не повредит. Во-первых, давайте найдем все доступные для записи каталоги с помощью следующей команды:
С помощью команды mkdir можно создать скрытый каталог, добавив точку к имени:
Зададим команду перечисления содержимого /dev/shm. Как видим, ничего не появилось:
Каталог появляется лишь тогда, когда мы используем переключатель -a для вывода списка всех файлов и каталогов:
Для удаления каталога после завершения работы на машине, используйте команду rmdir :
Шаг 3. Удалите историю Bash
Используем команду unset для удаления переменной:
Повторив процедуру снова, видим, что ничего не появляется:
Чтобы история команд не сохранялась, также можно ее отправить в /dev/null. Для этого установите переменную:
Или сделайте то же самое с командой экспорта:
История теперь будет отправлена в /dev/null (то есть никуда):
Установите количество команд, которые будут сохраняться во время текущего сеанса, равным 0, используя переменную HISTSIZE:
В качестве альтернативы используйте команду экспорта:
Измените количество строк, разрешенных в файле истории, с помощью переменной HISTFILESIZE. Установите данное значение на 0:
Для изменения параметров оболочки также можно использовать команду set. Чтобы отключить опцию истории, используйте следующую команду:
Точно так же для изменения параметров оболочки можно использовать команду shopt. Чтобы отключить историю, используйте следующую команду:
Во время выполнения команд на целевой системе иногда получается избежать их сохранения в истории, запустив команду с начального пробела:
Данный метод работает не всегда и зависит от системы. Также можно просто очистить историю с помощью переключателя -c :
Чтобы убедиться, что изменения записаны на диск, используйте переключатель -w :
Данные действия очистят историю только для текущего сеанса. Чтобы окончательно убедиться, что история очищается при выходе из сеанса, пригодится следующая команда:
Также можно использовать команду kill для выхода из сеанса без сохранения истории:
Шаг4. Очистите файлы журнала
Конечно, можно просто удалить журнал с помощью команды rm :
Но скорее всего, данная процедура вызовет многочисленные красные флажки. Поэтому лучше сделать файл пустым, чем стирать его полностью. Используем команду truncate, чтобы уменьшить размер файла до 0:
Обратите внимание, функция усечения присутствует не всегда и не во всех системах.
То же самое можно сделать, отображая в файл “ничего”:
А также использовать > сам по себе для очистки файла:
Мы также можем отправить его в /dev/null:
Или использовать команду tee :
Также можно использовать команду dd, чтобы ничего не записывать в файл журнала:
Команда shred может быть использована, чтобы поверх перезаписать файл с бессмысленными двоичными данными:
Дополнительно добавив -zu, вы обрежете файл и перезапишете его нулями:
Шаг 5. Используйте специальный инструмент для наилучшего сокрытия следов
Перейдите в каталог с возможностью записи и используйте chmod, чтобы сделать его исполняемым:
Затем запустите его:
Нам предоставляется настраиваемая подсказка с несколькими вариантами на выбор. Выберем первый, чтобы очистить логи:
Также можно отключить Bash и историю авторизации с помощью опции 2:
Если вам нужно срочно все очистить, просто добавьте в команду now:
Заключение
Какие файлы можно удалить при нехватке места на диске Linux
Бывают ситуации, когда место на диске закончилось полностью и нужно экстренно очистить диск и удалить файлы. Место на диске может закончится даже так, что
То есть бывают действительно критические ситуации — в этих условиях перестают нормально работать многие программы и службы. Поэтому задача становится следующей: срочно любой ценой освободить место на диске, чтобы можно было продолжить обслуживание системы и перейти ко второму этапу — поиску директорий и папок, которые привели к этой проблеме из-за того, что стали занимать слишком много места.
Предупрежу заранее: следующие команды хотя в основном и удаляют бесполезные файлы, после их выполнения могут потребоваться такие действия как:
Это означает, что НЕ копируйте бездумно команды — читайте пояснения к ним и оценивайте, насколько они безболезненны для вашей ситуации.
1. Удаление временных файлов
Файлы в папке /tmp/ будут удалены в любом случае при следующей перезагрузки системы. То есть с одной стороны их можно удалить достаточно безболезненно:
НО: может быть нарушена работа программ, которые запущены в настоящее время и которые сохранили какие-то данные в папку /tmp/.
2. Удаление файлов кэширования
В директории /var/cache/ много поддиректорий, которые можно удалить практически безболезненно (данные утеряны не будут, а программы создадут новые файлы кэширования). Эта директория вызывает особый интерес, поскольку на которых системах кэши разрастаются на гигабайты и десятки гигабайт. Иногда поиск проблемной директории в /var/cache/ может окончательно решить ситуацию с нехваткой места на диске.
Для удаления кэша шрифтов:
Для удаления кэша установочных пакетов (на Debian, Linux Mint, Ubuntu, Kali Linux и их производных):
Для удаления кэша установочных пакетов (на Arch Linux, BlackArch и их производных):
Удаление кэша справочных страниц:
Вы можете продолжить поиск больших кэшей применимо к программному обеспечению, установленному на вашей системе. Например, это могут быть кэши веб-сервера, прокси-сервера и т. д.
3. Удаление логов (журналов)
В этой папке (/var/log/) можно удалить практически все файлы, но старайтесь сохранить структуру папок, поскольку некоторые приложения после удаления здесь папки не в состоянии создать её второй раз…
На веб-серверах могут разрастись слишком сильно журналы веб-сервера.
Для удаления логов Apache на Debian, Linux Mint, Ubuntu, Kali Linux и их производных:
Для удаления логов Apache на Arch Linux, BlackArch и их производных:
Чтобы сервер начал создавать новые файлы журналов и записывать в них, нужно перезапустить службу веб-сервера.
В зависимости от интенсивности использования системы, накопленные журналы могут занимать гигабайты. В зависимости от системы файлы могут называться по-разному, более точный анализ рекомендуется выполнять с помощью утилиты ncdu:
4. Очистите корзину
Этот совет больше для настольных систем. Файлы, которые вы удалили в графическом интерфейсе рабочего стола, попадают в папку
/.local/share/Trash/files/, вы можете проанализировать их и при желании удалить (второй раз):
5. Удаление ненужных файлов исходного кода заголовков ядра
6. Удаление осиротевших пакетов
Осиротевшие пакеты — это те пакеты (программы), которые устанавливались в качестве зависимостей для других программ. Но по разным причинам они больше не нужны: или удалена программа, которая их использовала, или для той программы они перестали быть зависимостями после обновления программы.
На Debian, Linux Mint, Ubuntu, Kali Linux и их производных удалить ненужные пакеты можно следующим образом:
Для Debian и производных предыдущая команда абсолютно безопасна.
В Arch Linux и производных список осиротевших пакетов можно увидеть следующим образом:
Прежде чем переходить к их автоматическому удалению, настоятельно рекомендуется изучить этот список!
Для рекурсивного удаления сироток и их конфигурационных файлов в Arch Linux и производных:
7. Очистка журналов systemd
Со временем, в некоторых системах логи системы начинают занимать гигабайты на жёстком диске. Просмотреть журналы и освободить место вы можете с помощью команды journalctl, подробности смотрите в статье «Как использовать journalctl для просмотра системных логов Linux».
Чтобы увидеть, сколько место занимают журналы, выполните:
Чтобы удалить все записи, оставив только записей на 100 мегабайт, выполните:
Либо для удаления всех записей в системном журнале, старше одной недели:
8. Файлы в директории /lost+found
В папку /lost+found сохраняются файлы, которые были найдены после проверки файловой системы диска. Обычно такие проверки выполняются после внезапной перезагрузки системы или в случае признаков проблем с диском.
Найденные файлы обычно повреждены. Их цель — сохранить данные, которые в случае исправления ошибок на файловой системе были бы совсем утеряны.
Папка /lost+found может быть пустой (если не было проблем с диском). В случае если там есть файлы, то вы можете их просмотреть и, при желании, удалить.
9. Очистка PHP сессий
Иногда веб-приложений из-за бага могут создать бесчисленное количество сессий. Проверьте директорию /var/lib/php/sessions/ на предмет слишком большого количества файлов.
(БОНУС) 10. Проанализируйте файлы Docker
Не удаляйте бездумно файлы Docker. Я привожу пример этой директории только по той причине, что она привлекла моё внимание из-за просто фантасмагоричного размера — и это при том, что я Docker’ом фактически не пользуюсь — буквально несколько раз попробовал, чтобы увидеть, что это такое.
Самой большой папкой является /var/lib/docker/overlay2/. Для анализа занимаемого места на диске выполните:
Заключение
Итак, мы рассмотрели, какие файлы можно удалить из Linux практически без потери информации. Кроме рассмотренных директорий, которые можно очистить как на удалённой системе с веб-сервером, так и на домашнем компьютере, пользователям с графическим рабочим столом следует обратить внимание на такие директории как:
Их НЕ нужно удалять, но стоит проанализировать. Например, вы можете выяснить, что веб-браузер на вашем компьютере имеет кэш в несколько гигабайт и что вы можете их освободить (рекомендуется делать средствами веб-браузера, а не удалять файлы напрямую).
Если я пропустил какие-то директории с файлами, которые можно безболезненно удалить, то пишите их в комментариях!
Логи Linux. Всё о логах и журналировании
Привет, друг. Если, вдруг, ты решил изучать Linux чуть глубже чем процесс установки, то рано или поздно (скорее рано), а если начнешь что-то шаманить в системе, то практически сразу, ты столкнёшься с такой штукой, которую принято называть логи. А если, вдруг, ты решишь озаботиться вопросами безопасности каких-нибудь серверов то красноглазить в километры логов будет твои любимым занятием. Я конечно утрирую, но не сильно.
Смысл в том, что все что происходит в системе записывается в те самые логи, в том числе действия пользователей, работа приложений, системы и т.д. По линуксоидному этот процесс называется журналирование. И это основной источник информации о событиях в системе, в том числе и об ошибках. В общем, смысл в том, что разбираться где-какие логи и что в них пишется очень полезный навык. Короче шаришь за логи, получаешь «плюс сто» к линуксоидности. Поэтому сегодня мы разберемся какие бывают логи, что в них можно найти, и как с ними работать.
Логи Linux
Теперь по сути. Основные файлы логов лежат в папке /var/log.
Для начала рассмотрим какие вообще есть логи Linux и что в них пишется. Конечно прям все мы обсуждать не будем, дабы не плодить много букв. Возьмем только те которые мне кажуться наиболее актуальными. Кстати, в разных дистрибутивах Linux названия одних и тех-же логов могут отличаться. Для более глубокого понимания можно заглянуть в конфиг службы rsyslog. Именно она является одной из основных служб Linux отвечающей за сбор логов. Её конфиг лежит: /etc/rsyslog.d/50-default.conf
Здесь описываются правила хранения логов в зависимости от их типа. Все достаточно просто: слева указывается какой тип информации. а справа в какой лог её записывать. Символ «звездочка» обозначает «любое значение» или исключение из списка. Так, для примера первая строка обозначает, что все авторизационные данные должны записываться в файл auth.log, а вторая обозначает что все данные кроме авторизационных, должны записываться в файл syslog. Я думаю общий смысл понятен, а сами службы и их настройку, разберем чуть позже.
Типы логов
А сейчас разберем, собственно сами логи, точнее какие бывают логи:
/var/log/syslog (может называться /var/log/messages) — это основной системный журнал. Туда пишется все с момента запуска системы, служб, информация об устройствах, состояния сетевых служб и т.д. Если в системе что-то не работает или работает не так как надо, то в этот журнал стоит заглянуть в первую очередь, скорее всего ответ будет именно там.
/var/log/auth.log (может называться /var/log/secure) — это информация об авторизации пользователей, а также информация о использованных механизмах аутентификации. В этот лог записываются как удачные, так и не удачные попытки входа всех пользователей. Если подключение удаленное, то также будет виден ip c которого подключились. В этот же лог записываются все изменения касающиеся списка пользователей и групп пользователей. Но тут, на всякий случай нужно помнить, что факт создания нового пользователя будет записан в лог только в том случае если пользователь создавался из графического интерфейса или из терминала, командой useradd. Если вписать пользователя руками в файлы /etc/passwd (список всех пользователей системы) и /etc/shadow (там в зашифрованном виде хранятся пароли) то записей в журнале не будет. Правда они все равно появятся когда пользователь войдет в систему, но помнить об этом моменте нужно.
/var/log/dmesg — лог драйверов устройств. Чтобы его посмотреть достаточно ввести в терминале dmesg;
/var/log/boot.log — лог загрузки системы т.е. все что касается загрузки системы храниться здесь;
/var/log/dpkg.log — лог менеджера пакетов. Название может отличаться в зависимости от используемого в системе менеджера пакетов;
/var/log/faillog — лог неудачных попыток входа в систему;
/var/log/apache2/ (может называться /var/log/httpd/) — лог веб-сервера Apache. Журнал доступа это access_log, а ошибки записываются в error_log;
/var/log/mysql/ — лог базы данных MySQL.
Это конечно не все возможные логи, но для большинства основных задач достаточно. Ещё с некоторыми познакомимся дальше.
Информация о пользователях
Теперь познакомимся с командами позволяющими получить основную информацию о системе и пользователях. Это намного удобнее если нужно получить какую-то конкретную информацию и лопатить логи нет необходимости или желания.
Команда who покажет нам кто из пользователей сейчас залогинен в системе и когда он зашел. Данная информация хранится в файле /var/run/utmp, но хранится она там временно, только пока пользователь в системе. Если пользователей выйдет, запись удалится. Т.е. эта команда показывает только актуальные данные.
Если нужно выяснить когда пользователь заходил в систему и сколько времени в ней находился то эта инфа хранится в логе /var/log/wtmp. Чтобы получить эти данные используется команда last и указывается имя пользователя, либо можно имя не указывать тогда увидим отчет по всем пользователям.
Следующая команда, которая может быть крайне полезной, это:
Эта команда показывает список всех пользователей системы с датами их последнего входа. Тут стоит проверять чтобы системные пользователи ни когда не логинились в системе. Просто потому что они не могут этого делать сами и, если вдруг, ты подобное видишь, значит у тебя явно что-то идет не так как должно.
Способы чтения логов в Linux
Просматривать логи в Linux можно несколькими способами. Можно делать это стандартными средствами системы, а можно использовать специализированный софт.
Начнем со стандартных средств. Самым стандартным, но не самым удобным средством просмотра логов, можно считать утилиту «журналы». Логи Linux разбиты по категориям, можно выбирать разные даты. есть поиск и можно скачать логи в виде файла. Вполне подходит для каких-то разовых ситуаций. когда нужно разобраться с конкретной ошибкой, например.
Также логи можно изучать используя инструменты командной строки. Так как логи хранятся в виде текстовой информации, то и просматривать их можно соответствующими способами, как текстовую информацию. Самый простой, но не самый удобный вариант, команда cat:
Она просто выведет в терминал содержимое файла, дополнительный функционал не предусмотрен.
Чуть более удобна в использовании утилита less.
после ввода команды, чтобы увидеть справку можно нажать кнопку h, чтобы выйти кнопку q. Используя less, можно перемещаться по файлу лога впере-назад построчно, либо поэкранно. Также можно следить за изменениями в реальном времени.
В общем стандартные утилиты это хорошо, и знать про них нужно. Вот только, как и практически всё стандартное, они не дают того удобства которое можно получить используя утилиты специализированные.
Log File Navigator — lnav и логи Linux
Одна из лучших утилит для просмотра логов это Log File Navigator или lnav. Установить её можно командой:
либо, если ты используешь дистрибутив, в репозиториях которого её нет, то вот ссылка на неё:
Основные фишки lnav это удобная подсветка, возможность чтения любых форматов логов, в том числе архивированных, возможность объединения нескольких файлов в единый отчет, удобный поиск и фильтрация, ну и всякое другое, по мелочи. Короче если часто лопатишь логи, штука мастхэвная.
Как пользоваться? Тут все просто. Если запустить программу без параметров:
то нам покажет журнал syslog. Если нужно посмотреть какой-то другой лог, то после lnav нужно указать какой именно, а если нужно увидеть несколько логов то просто их перечисляем, например:
При этом, слева полоской будут выделены сообщения отдельного лога, а справа сверху будет написано к какому именно логу они относятся.
Если нужно открыть заархивированный лог то перед названием лога нужно добавить параметр -r.
Ещё одна, иногда полезная функция — это гистограмма, если нажать кнопку i, то появится такой график, по которому видно в какое время сколько сообщений было добавлено в лог. Крайне полезно на серваках.
Естественно есть возможность поиска нужны строк. Для этого жмём кнопку ? и вводим слово для поиска, одновременно с этим видим подсказку по синтаксису поиска.
Ротация логов
Вроде как разобрались с lnav и неспеша переходим дальше. А дальше у нас такая штука как ротация логов. Учитывая что логи пишутся постоянно и по любому поводу, то если бы этот процес был неконтролируемым, через некоторое время файлы логов стали бы огромными, занимали бы кучу места и работать с ними стало бы просто нереально. Естественно этот процес контролируемый и отвечает за него утилита logrotate. Она плодит файлы с названием лога и цифрой через точку, либо такие же архивы. Туда сохраняются старые записи, чтобы к ним можно было вернуться через время. Естественно работу этой утилиты можно и нужно настраивать. Под свои потребности, так сказать.
Основной конфиг утилиты лежит в файле /etc/logrotate.conf. Но правильнее будет настраивать используя конфиги в папке: /etc/logrotate.d/. Здесь под каждый лог лежит отдельный конфиг. В котором, после названия самого лога перечисляются параметры его ведения.
Здесь все достаточно просто:
monthly — означает что логи меняются ежемесячно. Можно изменить на ежедневно или еженедельно;
rotate — означает что может быть создано 12 файлов с сохраненными логами (тех самых — через точку);
compress — архивировать файлы со старыми логами;
missingok — означает что logrotate не будет выводить ошибку если файл с логами отсутствует;
notifempety — если файл пустой, то ротация выполнятся не будет
create — файлу логов будут присвоены права 644, владельцем будет пользователь root и группа root;
size — можно установить максимальный размер файла логов (например 1М), по достижению которого будет выполнена ротация.
Теперь понимая, какой параметр за что отвечает, можно каждому логу задать индивидуальные параметра ведения. И если для домашнего использования это вряд ли необходимо, подойдут и стандартные параметры, то для, какого-нибудь сервера, пожалуй обязательная история.
Логи Linux. journald
Рассказ про логи в Linux был бы не полным, если бы я не вспомнил про такую штуку как journald. Говоря линуксоидным языком — это служба сбора логов systemd-journald, которая является частью подсистемы инициализации и управления службами systemd. Другими словами это ещё одна служба сбора логов, самостоятельная и со своими особенностями. Основные особенности в том, что все логи хранятся в каталоге /var/log/journal/ и хранятся они в бинарном виде, потому просто посмотреть их как текстовый файл не получится. Для этого есть специальная утилита journalctl. Штука довольно замороченная, потому разберемся как с ней работать на конкретных примерах.
Для начала мы можем посмотреть все запуски системы:
Можно также получить логи касающиеся только конкретной службы. Например давай увидим все что касается только службы Network Manager:
Чтобы увидеть сообщения ядра системы вводим:
Если нужно следить за логами в режиме реального времени, то используется параметр -f.
Также, параметры запуска этой утилиты можно комбинировать, для получения более конкретного результата:
Если нужно увидеть только несколько последних записей, то их количество можно задать параметром -n:
Ну и раз уж, уже вспомнили про systemd в целом, то наверное надо сказать и про systemd-analyze. Это такая штука которая собирает статистику загрузки системы.
Если ввести в терминале просто:
без каких-либо параметров, то мы увидим общее время загрузки системы. А если добавить параметр blame, то увидим сколько времени загружалась каждая служба, самые медленные процессы будут сверху.
Эта штука может быть полезна для выявления процессов затормаживающих загрузку и оптимизации старта системы на слабых компьютерах.
Приоритет сообщений в логах
Как rsyslog так и joirnald имеют одну общую штуку, касающуюся ведения логов. Это приоритет сообщений. Логи в системе генерируются в зависимости от типа события, а это событие, в свою очередь, имеет определенную степень критичности. Вот в зависимости от этой критичности, событию присваивается определенный приоритет. Знать типы приоритетов, совсем не лишнее, будет немного проще разбирать логи Linux.
Мы можем использовать их для просмотра логов, фильтруя информацию по конкретному приоритету.
Или в случае с journalctl:
Ну, а на этом наше знакомство с логами можно считать оконченным. Мы конечно рассмотрели здесь только самые важные моменты, но на то оно и знакомство, что бы узнать азы, а глубже уже изучать самостоятельно. Если в этом есть необходимость, конечно. Потому что, описанного в этой статье, как по мне, вполне достаточно обычному пользователю, чтобы комфортно чувствовать себя при работе с логами. Ну и свой баф к линуксоидности ты сегодня получил. Потому не забывай возвращаться к нам, ведь есть ещё много тем которые стоит изучить.
How to empty or clear system log files in Linux
Learn how to empty or clear system log files in Linux using various methods, including manual commands, logrotate, and Stacer. Keep your system organized and save disk space by managing log files efficiently.
A s a Linux system administrator for more than a decade, I’ve grown to appreciate the importance of keeping my systems running smoothly. One aspect that I’ve found essential, though not always given the attention it deserves, is the maintenance of system log files. Over the years, I’ve developed some personal preferences for clearing and emptying log files on Linux systems, and I’m excited to share these with you today.
In this post, I’ll walk you through some effective ways to empty or clear system log files in Linux. While there are several methods available, I’ll focus on my tried and tested favorites. We’ll also take a moment to discuss the importance of log management and why I think it’s crucial for every system administrator to master.
Why log management matters
As you know, log files are the bread and butter of any Linux system administrator. They are essential for diagnosing and troubleshooting system issues, tracking user activity, and monitoring system performance. However, log files can also grow in size and consume valuable disk space, which can lead to performance issues or even system failures.
That’s why I’ve always been a fan of regularly managing log files to ensure that my systems remain in tip-top shape. Let’s dive into my favorite techniques for clearing log files on Linux systems.
Clearing system log files in Linux
Method 1: Manually emptying log files
I’ll start with the most basic, yet effective, method: manually emptying log files using the command line. As an old-school sysadmin, I find this method oddly satisfying, and I appreciate the control it offers. Here’s how you do it:
Open your terminal.
Navigate to the /var/log directory:
Identify the log file you want to empty. For this example, I’ll use the “syslog” file. To empty it, run the following command:
Clearing the syslog file
The above command will empty the contents of the /var/log/syslog file without deleting the file itself. Let’s break down the command to understand each part:
sudo: This command is used to run the following command with root (administrator) privileges. Since log files are typically owned by the root user, you need these privileges to modify them.
sh: This is a shell interpreter (Bourne shell). By using sh, you can run a shell command. In this case, you’re running the shell command within single quotes as an argument to sh.
-c: This flag is used to tell the shell interpreter (sh) to execute the command specified within the single quotes.
‘echo > /var/log/syslog’: This is the command that you want the shell interpreter to execute. It consists of the following parts:
a. echo: This command is used to output text to the terminal or a file. When used without any arguments, it outputs an empty line.
b. >: This is the redirection operator. It takes the output of the command to its left (in this case, echo) and writes it to the file specified to its right (in this case, /var/log/syslog). If the file already exists, the > operator overwrites the file with the new content, effectively emptying it.
By running sudo sh -c ‘echo > /var/log/syslog’, you are executing a shell command with root privileges that overwrites the /var/log/syslog file with an empty line, thus emptying the file.
How to check if the command worked?
To check if the command worked and the /var/log/syslog file has been emptied, you can use the cat command, which displays the contents of a file. Here’s how to do it:
Open your terminal.
Run the following command:
If the command to empty the syslog file worked correctly, you should see no output or just an empty line after running the cat command. This indicates that the /var/log/syslog file is now empty.
Checking syslog content
If you still see content in the syslog file, it might be because new log entries were added after you emptied the file. This log file is a very busy file! In such cases, you can repeat the process to empty the file again, but keep in mind that it’s normal for log files to be continuously updated with new entries as the system operates.
Method 2: Logrotate
As much as I love doing things manually, I understand the need for automation. Logrotate is a powerful Linux utility that can automatically manage, compress, and clear log files. It’s definitely one of my favorite tools, especially when dealing with numerous log files.
To set up logrotate, follow these steps:
Install logrotate if not already installed:
Here are the steps to create a custom logrotate configuration file and set it up to manage specific log files:
Open the terminal.
Create a new file called “my_logs.conf” in the /etc/logrotate.d/ directory:
This command opens the “my_logs.conf” file using the nano text editor with root privileges.
Add your custom configuration to the file.
Creating a custom script
This configuration tells logrotate to manage the /var/log/syslog and /var/log/auth.log log files, with the specified directives.
More about how the script works:
This logrotate configuration script is used to manage the /var/log/syslog and /var/log/auth.log log files with the specified directives. Let’s go over each directive in detail:
So, by using this configuration file, logrotate will manage the syslog and auth.log files according to the specified directives. This means that these log files will be rotated daily, with up to 7 rotated log files kept, compressed, and created with the specified permissions and ownership.
Save the changes and exit the text editor. For nano, press Ctrl + X, followed by Y (to confirm saving changes), and then press Enter.
Verify that the new configuration file is valid. Run the following command:
Verifying if the script is working as intended – Part 1 of Terminal screenshot
Verifying if the script is working as intended – Part 2 of Terminal screenshot.png
This command checks the custom configuration file for errors and shows the actions logrotate would take without actually executing them.
If there are no errors, logrotate will use your custom configuration file during its next run. By default, logrotate is executed daily via a cron job located at /etc/cron.daily/logrotate. The custom configuration you’ve created will now be used to manage the specified log files according to the directives provided.
That’s it! You’ve now created a custom logrotate configuration file and set it up to manage specific log files on your Linux system.
Method 3: Using Stacer (GUI app)
Stacer is an open-source system optimization and monitoring tool that offers a user-friendly graphical interface for managing various aspects of a Linux system, including log files. If you’re looking for a modern and more visual approach to clearing logs, Stacer might just be the perfect solution for you.
Stacer User Interface
Step 1: Install Stacer
First, you’ll need to install Stacer on your Linux system. You can download the latest version from the official GitHub repository: https://github.com/oguzhaninan/Stacer/releases. Choose the appropriate package for your distribution and install it using your package manager.
For Ubuntu or Debian-based systems, you can use the following commands:
Alternatively, you can also use apt:
For Fedora-based systems, you can use these commands:
Alternatively, you can also use dnf:
Step 2: Launch Stacer
After installing Stacer, launch the application from your system’s application menu, or run the following command in the terminal:
Step 3: Clear log files
In Stacer’s main window, click on the “System Cleaner” tab located on the left side of the interface.
Under the “Select Items to Clean” section, check the box next to “Log Files” to select all log files for cleaning.
Cleaning Application Logs using Stacer
Click on the “Scan” button at the bottom of the window. Stacer will then scan your system for the selected log files and display the total size of the files to be cleared. You can use “Select all” or clear only the logs you need.
Selecting logs to be cleaned
After the scan is complete, click on the “Clean” button to clear the selected log files. Stacer will remove the files and display a summary of the cleaned items.
And that’s it! You’ve successfully cleared your log files using Stacer. This modern and visually appealing tool provides an intuitive and easy-to-use approach to log file management, making it a great option for those who prefer a graphical interface over the command line.
My personal take on log management
I believe that each system administrator should have their unique approach to log management. Personally, I prefer combining manual and automated methods, as they complement each other well. I use manual methods for one-off log file clearings, while logrotate takes care of regular maintenance.
Although some may argue that automation should be the default, I find value in occasionally taking a hands-on approach. This not only helps me stay familiar with the command line, but also allows me to keep an eye on the log files’ content, helping me stay informed about any potential issues.
Additionally, I’m a strong advocate for log monitoring and analysis tools, such as Logwatch or Graylog. These tools help me keep track of important system events and alerts, which is critical for maintaining a healthy and secure system.
When it comes to log management, my personal motto is “Stay proactive, stay informed.” By regularly clearing and monitoring log files, I can prevent disk space issues, quickly detect any anomalies, and ensure that my Linux systems run like a well-oiled machine.
Conclusion
In this post, we’ve discussed the importance of log management and explored two of my favorite techniques for clearing system log files in Linux: manual emptying and logrotate. As a seasoned sysadmin, I believe that a combination of manual and automated methods, coupled with a proactive approach to log monitoring, is essential for maintaining efficient and secure Linux systems.
Feel free to try out these methods, experiment with different tools, and develop your own personal preferences for log management. After all, every sysadmin’s journey is unique, and finding what works best for you is key to mastering the art of Linux system administration.