- Очистка лог файлов под linux
- 3 ответа
- Как очистить (усечь) файлы журнала в Linux
- Как очистить (усечь) файлы журнала в Linux
- Пустой файл журнала с помощью команды truncate
- Пустой файл журнала, используя:> или true>
- Пустой файл журнала с помощью команды echo
- Пустой файл журнала с помощью команды dd
- Заметаем следы вместе с хакерами. Чистим логи и историю Bash на взломанных Linux системах
- Шаг 1. Скомпрометируйте цель
- Шаг 2. Создайте легко удаляемый скрытый каталог
- Шаг 3. Удалите историю Bash
- Шаг4. Очистите файлы журнала
- Шаг 5. Используйте специальный инструмент для наилучшего сокрытия следов
- Заключение
- Как правильно чистить логи в journald (systemd)
- Какие файлы можно удалить при нехватке места на диске Linux
- 1. Удаление временных файлов
- 2. Удаление файлов кэширования
- 3. Удаление логов (журналов)
- 4. Очистите корзину
- 5. Удаление ненужных файлов исходного кода заголовков ядра
- 6. Удаление осиротевших пакетов
- 7. Очистка журналов systemd
- 8. Файлы в директории /lost+found
- 9. Очистка PHP сессий
- (БОНУС) 10. Проанализируйте файлы Docker
- Заключение
Очистка лог файлов под linux
Я использую виртуальную машину kvm ubuntu 10.04 для тестирования некоторых функций модуля ядра. Я пролистываю файлы /var/log для просмотра сообщений ядра об этом модуле.
Чтобы начать с чистого состояния, я удаляю файлы журналов, содержащие старые сообщения, выполнив rm -rf /var/log/* , а затем перезагрузив виртуальную машину. Однако после перезагрузки новые файлы журнала все еще содержат эти старые сообщения журнала. Удаление файлов и перезагрузка виртуальной машины занимает около 5-6 циклов, чтобы окончательно избавиться от сообщений журнала.
Почему это происходит? Есть ли более простой способ очистки файлов журнала?
3 ответа
Самый простой способ очистить старые журналы — не удалять их.
Лучший способ очистить журналы — это либо logrotate , как указал Ханан Н., либо:
для каждого из файлов журнала. Я не совсем уверен, на какие записи журнала вы ссылаетесь с предыдущей загрузки, но если вы хотите очистить это после загрузки, вы можете поместить указанную выше команду в /etc/rc.local сценарий, так что вся запись ведется после загрузки.
Обычно, хотя вы не хотите очищать журналы, так как они являются отправной точкой для устранения неполадок.
Для того, что вы делаете, может быть лучше добавить дополнительный файл журнала для сообщений ядра. Некоторые демоны журналов позволяют выполнять сопоставления записываемых записей, так что вы получаете только соответствующие записи в своем файле. Затем вы можете вращать, удалять или переименовывать файлы между запусками. (Если вы не перезагрузите компьютер, вам может потребоваться отправить сигнал HUP демону журнала, чтобы он снова открыл свои файлы.
Есть также инструменты, которые будут извлекать только новые записи из журнала. Утилита logtail из пакета logcheck одна такая утилита. Его можно запустить с файлом альтернативного смещения.
Существуют и другие инструменты, которые отслеживают в журналах записи, соответствующие шаблону, и сообщают о них. Один из них может хорошо сработать для вас.
Похоже, что это работает нормально (в Ubuntu LTS 14.04), свернув журналы в чистый журнал, а затем удалив старые записи журнала. Он похож на метод cp /dev /null, но я думаю, что он чище. YMMV
Источник
Как очистить (усечь) файлы журнала в Linux
Как очистить (усечь) файлы журнала в Linux
В какой-то момент жизненного цикла Sysadmin может потребоваться очистить файл журнала, чтобы сэкономить место на системном диске или по любой другой причине. Существуют различные способы очистки файла в системе Linux.
Пустой файл журнала с помощью команды truncate
Самый безопасный способ очистки файла журнала в Linux — использование команды truncate. Команда усечения используется для сокращения или расширения размера каждого ФАЙЛА до указанного размера.
Где -s используется для установки или настройки размера файла по размеру байтов. file Может быть относительно текущего каталога или абсолютный путь к файлу при условии.
Для полных опций команды усечения используйте опцию —help
Пустой файл журнала, используя:> или true>
Вы также можете использовать :> для очистки содержимого файла. Синтаксис
Пустой файл журнала с помощью команды echo
Если вы ничего не отобразите в файле, он очистит содержимое, чтобы очистить его.
Пустой файл журнала с помощью команды dd
Синтаксис для использования dd команды
Смотрите примеры ниже
Для нескольких файлов достаточно простого цикла в bash.
Используйте любой из методов, чтобы очистить ваши большие файлы журнала.
Источник
Заметаем следы вместе с хакерами. Чистим логи и историю Bash на взломанных Linux системах
Последним этапом деятельности любого хакера является заметание следов.
Автор: DRD_, Cyber Weapons Lab
Последним этапом деятельности любого хакера является заметание следов. Киберпреступник удаляет следы своей деятельности и логи, чтобы избежать обнаружения. Данный этап особенно важен, если злоумышленник в будущем планирует снова получить доступ к целевому устройству.
Для демонстрации основ заметания следов, сначала скомпрометируем цель, а затем изучим несколько методов, используемых для удаления истории Bash и очистки логов после взлома Linux систем.
Шаг 1. Скомпрометируйте цель
Первое, что нам следует сделать, — взломать цель. Используя некорректную обработку сервером команд ОС, можно применить внедрение команд, для получения оболочки. Затем нашу новую оболочку необходимо обновить до полностью интерактивной. Данная процедура значительно упростит работу. После этого мы сможем повысить наши привилегии до root, чтобы наилучшим образом использовать преимущества системы и оставаться незамеченными.
Шаг 2. Создайте легко удаляемый скрытый каталог
Получив root-доступ, мы можем создать скрытый каталог для работы и хранить в нем любые скрипты или файлы. С одной стороны, подобные манипуляции обманут лишь самого начинающего администратора, но дополнительный уровень защиты определенно не повредит. Во-первых, давайте найдем все доступные для записи каталоги с помощью следующей команды:
С помощью команды mkdir можно создать скрытый каталог, добавив точку к имени:
Зададим команду перечисления содержимого /dev/shm. Как видим, ничего не появилось:
Каталог появляется лишь тогда, когда мы используем переключатель -a для вывода списка всех файлов и каталогов:
Для удаления каталога после завершения работы на машине, используйте команду rmdir :
Шаг 3. Удалите историю Bash
Команды записываются в переменную среды HISTFILE, обычно это .bash_history. Воспользуемся echo для определения местоположения:
Используем команду 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:
Заключение
Отмечу, что существуют и другие способы удаления следов атаки. Можно использовать Metasploit , сценарии оболочки или осуществить сокрытие следов на взломанной Windows системе. Тем не менее информации, приведенной в статье, вполне достаточно для сокрытия активности на базовом Linux компьютере.
Источник
Как правильно чистить логи в journald (systemd)
Столкнулся с тем, что логи в /var/log/journal/ стали занимать более гига.
Но при этом journalctl не содержит никаких параметров и опций, позволяющих удалить старые записи: например, сделанные до какой-то даты.
Порылся в конфиге /etc/systemd/journald.conf — там есть только про ограничения размеров журналов.
Ограничение я поставил, но journald журналы не обрезал.
Как корректно удалить излишки?
- Вопрос задан более трёх лет назад
- 25564 просмотра
«.
Папка полегчала на 600М. Каких либо косяков в работе не вижу.
Но интересует именно чистка по условиям: до даты или обрезать до такого-то размера (в кол-ве записей или в Мб).
В Linux есть штатная утилита logrotate, которую запускает системный планировщик cron, служит для ротации логов у приложений, которые сами этого не делают и многих системных логов. По ее настройке достаточно много мануалов в сети. Умеет в том числе сжимать логи, кидаться в процессы пишущие лог сигналами перезапуска, чтобы корректно выдернуть из под них файл, удалять файлы логов/архивы по истечении лимита времени жизни или размера и многое другое.
И как всегда в Linux есть и топорный способ — заколотить в crontab команду удаления файлов, например старше 5 дней.
find /path/to/files* -mtime +5 -exec rm <> \;
Спасибо, я прекрасно знаю, что такое logrotate . И я уже сказал, что systemd/journald берут эту функцию на себя.
Журналы journald хранятся в бинарном формате. Причём в одном файле может лежать несколько дней логов, так что ваш топорный способ работать не будет.
Для просмотра логов в journalctl есть опции —since и —until , но удалять логи через утилиту нельзя.
Да, можно настроить так, что journald будет сам удалять логи древнее 5 дней.
Меня интересует накопление логов до тех пор, пока я их не просмотрю. Потом удалить их до (дата просмотра-5 дней), чтобы не хранить кучу хлама.
Источник
Какие файлы можно удалить при нехватке места на диске Linux
Бывают ситуации, когда место на диске закончилось полностью и нужно экстренно очистить диск и удалить файлы. Место на диске может закончится даже так, что
- при попытке выполнить очистку кэша установочных пакетов, система будет сообщать об ошибке (нет места даже для сохранения файла-блокировщика),
- при попытке установить ncdu для поиска разросшихся папок и файлов, система не сможет найти даже 81 килобайт, необходимый для этой команды
- при попытке найти файлы и папки занимающие больше всего места в Linux система также будет выдавать ошибку из-за того, что команда sort не сможет сохранить на диск кэш данных, если этих данных очень много
То есть бывают действительно критические ситуации — в этих условиях перестают нормально работать многие программы и службы. Поэтому задача становится следующей: срочно любой ценой освободить место на диске, чтобы можно было продолжить обслуживание системы и перейти ко второму этапу — поиску директорий и папок, которые привели к этой проблеме из-за того, что стали занимать слишком много места.
Предупрежу заранее: следующие команды хотя в основном и удаляют бесполезные файлы, после их выполнения могут потребоваться такие действия как:
- перезапуск служб для их нормальной работы (чтобы они заново пересоздали файлы журналов, кэши, файлы блокировки)
- могут быть потеряны различные журналы и файлы из корзины, которые хотя и не нужны большинству пользователей, в некоторых условиях вы можете захотеть их оставить (например, вам важно изучить файлы логов, поскольку в них может быть причина проблемы).
Это означает, что НЕ копируйте бездумно команды — читайте пояснения к ним и оценивайте, насколько они безболезненны для вашей ситуации.
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. Удаление ненужных файлов исходного кода заголовков ядра
Следующее актуально только для 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
Не удаляйте бездумно файлы Docker. Я привожу пример этой директории только по той причине, что она привлекла моё внимание из-за просто фантасмагоричного размера — и это при том, что я Docker’ом фактически не пользуюсь — буквально несколько раз попробовал, чтобы увидеть, что это такое.
Самой большой папкой является /var/lib/docker/overlay2/. Для анализа занимаемого места на диске выполните:
Заключение
Итак, мы рассмотрели, какие файлы можно удалить из Linux практически без потери информации. Кроме рассмотренных директорий, которые можно очистить как на удалённой системе с веб-сервером, так и на домашнем компьютере, пользователям с графическим рабочим столом следует обратить внимание на такие директории как:
/Downloads (ваши скаченные файлы)
Их НЕ нужно удалять, но стоит проанализировать. Например, вы можете выяснить, что веб-браузер на вашем компьютере имеет кэш в несколько гигабайт и что вы можете их освободить (рекомендуется делать средствами веб-браузера, а не удалять файлы напрямую).
Если я пропустил какие-то директории с файлами, которые можно безболезненно удалить, то пишите их в комментариях!
Источник