Linux как очистить var log

Удалить все из / var / log?

Могу ли я удалить все в /var/log ? Или я должен только удалить файлы (рекурсивно), /var/log но оставить папки?

У кого-нибудь есть хорошая rm командная строка? (Мои навыки администратора заставляют меня нервничать.)

Примечание: я использую Debian. Я не уверен, какая версия.

Вместо удаления файлов вы должны повернуть их, например, используя logrotate .

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

logrotate может сжать ваши старые файлы журнала, чтобы они не занимали много места на диске.

Если вы удалите все в / var / log, вы, скорее всего, получите очень много сообщений об ошибках за очень короткое время, так как там есть папки, которые, как ожидается, будут существовать (например, exim4, apache2, apt, cups, mysql, samba и больше). Плюс: есть некоторые службы или приложения, которые не будут создавать свои файлы журналов, если они не существуют. Они ожидают, что будет хотя бы пустой файл. Таким образом, прямой ответ на ваш вопрос на самом деле «Не делай этого . « ,

Как указал Йоски, нет никаких оснований для этого. У меня запущены серверы Debian, в которых не было удалено ни одного файла журнала за последние годы.

Удалить все файлы:

Удалить все .gz и повернутый файл

Попробуйте запустить команду без «-delete», чтобы проверить это.

Я клонирую виртуальные машины от мастера. Имеет смысл очистить журнал мастера, чтобы при загрузке клонов вы не получили журнал мастера. Я сделал в tcsh:

который очищает журналы, но сохраняет файлы.

Очистка всех журналов в системе Linux без удаления файлов:

Samba ( /var/www/samba ) создает имена файлов журнала с IP-адресами, вы можете удалить их:

Вы можете использовать опцию ctime, чтобы найти старые файлы . например:

Как объясняет bindbn, сначала попробуйте найти файлы извлечения, а после используйте опцию delete: D

/var/log часто имеет разрешения drwxrwxr-x , поэтому не доступен для записи пользователем, если пользователь не является пользователем root или не принадлежит к привилегированной группе. Это означает, что новые файлы журнала не могут быть созданы непривилегированными пользователями.

Приложения, которые ожидают регистрации в какой-либо точке внутри /var/log , часто будут касаться файла, существующего где-то в /var/log иерархии, во время установки (что часто происходит с повышенными привилегиями), и будут chmod и, возможно, chown в это время с разрешениями, подходящими для непривилегированных пользователей, которые будут используя приложение.

Журналы Apache, например, обычно записываются пользователем nobody , который имеет как можно меньше привилегий, чтобы Apache мог выполнять свою работу, не подвергая систему чрезмерному риску. Но даже более заурядное приложение часто ожидает возможность записи в файл журнала /var/log .

Так что же произойдет, если лог-файл и путь к лог-файлу не существуют? Это полностью зависит от приложения. Некоторые приложения будут спокойно пропускать регистрацию. Другие создадут много предупреждений. А другие просто выручат. Там нет жесткого правила; это зависит от бдительности разработчика приложения, а также от того, насколько критично разработчик считает, что он может вести журнал. В лучшем случае приложение будет пытаться либо выполнить запись, либо, возможно, создать, а затем записать в файл журнала в месте назначения /var/log , и окажется, что оно не сможет этого сделать, поскольку оно выполняется пользователем, у которого нет прав для записи в него. эта часть файловой системы.

Читайте также:  Криптопро csp для windows x64

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

Надлежащее действие — настроить logrotate с помощью соответствующих файлов конфигурации. Обычно ротация будет связана с заданием cron. Вращение может быть основано на интервале, или на основе размера, или на обоих. Можно даже настроить правила, которые избегают ротации на основе интервалов, если файл журнала все еще пуст после истечения интервала. Ротация может включать рассылку файлов журналов, сжатие, удаление, уничтожение и т. Д.

Обычному пользователю не нужно слишком беспокоиться о ротации логов. Разработчики, вероятно, захотят убедиться, что для журналов, которые они используют, установлены правила ротации. На самом деле, разработчики, вероятно, установят ротацию журналов во время установки для любых программно-специфических журналов, которые будут создаваться и записываться программным обеспечением.

Источник

Удалить все /var /log?

Можно ли удалить все в /var/log ? Или я должен только удалять файлы (рекурсивно) в /var/log , но оставить папки?

Есть ли у кого хорошая строка rm ? (Мои навыки администратора оставляют меня нервным.)

Примечание. Я использую Debian. Я не уверен, какая версия.

9 ответов

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

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

logrotate может сжать ваши старые файлы журналов, чтобы они не занимали много места на диске.

Если вы удалите все в /var /log, вы, скорее всего, получите массу сообщений об ошибках за очень короткое время, так как там есть папки, которые, как ожидается, будут существовать (например, exim4, apache2, apt, cups, mysql, samba и др.). Плюс: есть некоторые службы или приложения, которые не будут создавать свои файлы журналов, если они не существуют. Они ожидают по крайней мере пустого файла. Поэтому прямой ответ на ваш вопрос на самом деле — «Не делай этого . » .

Как отметил Йоши, для этого нет оснований. У меня запущены серверы debian, у которых не было одного файла журнала, удаляемого за многие годы.

Удалить все файлы:

Удалить все .gz и повернутый файл

Попробуйте запустить команду без «-delete», чтобы протестировать ее.

Я клонирую виртуальные машины от мастера. Имеет смысл очистить журнал от мастера, чтобы при загрузке клонов вы не получили журнал мастера. Я сделал в tcsh:

, который очищает журналы, но сохраняет файлы.

Очистка всех журналов в системе Linux без удаления файлов:

Samba ( /var/www/samba ) создает имена файлов журналов с IP-адресами, вы можете их удалить:

Вы можете использовать параметр ctime для поиска старых файлов . например:

Как bindbn объясните, сначала попробуйте найти файлы выборки и после использования опции delete: D

Я использовал простой уборщик здесь:

  • Удаляет имена файлов с помощью следующих шаблонов имен файлов с паролями в /var/log
      ^.*/.+\.[[:digit:]]+(\.[[:alpha:]]+)?$ литий>
    • ^.*/.+\.old$ (без учета регистра)
  • Truncate /Empty файлы с именами файлов со следующими шаблонами имен файлов в /var/log
    • ^.*/.+\.log$ (без учета регистра)

/var/log часто имеет разрешения drwxrwxr-x , поэтому он не доступен для пользователя, если только пользователь не является root или принадлежит привилегированной группе. Это означает, что новые файлы журналов не могут быть созданы не-привилегированными пользователями.

Читайте также:  Почему после обновления windows 10 лагает ноутбук

Приложения, которые ожидают входа в точку внутри /var/log , будут часто касаться файла, существовавшего где-то в /var/log во время установки (что часто встречается с повышенными привилегиями) и будет chmod и, возможно, chown в это время для разрешений, подходящих для непривилегированных пользователей, которые будут использовать приложение.

Журналы Apache, например, обычно записываются с помощью nobody , который является пользователем с максимально возможными привилегиями для Apache для выполняйте свою работу, не подвергая систему неоправданному риску. Но даже приложение с большим количеством приложений часто ожидает, что оно сможет записать в файл журнала в /var/log .

Итак, что происходит, если файл журнала и путь к файлу журнала не существуют? Это полностью зависит от приложения. Некоторые приложения будут спокойно пропускать протоколирование. Другие создадут много предупреждений. И другие просто выручат. Там нет жесткого правила; это зависит от бдительности разработчика приложения, а также от того, насколько критичен разработчик его способность регистрироваться. В лучшем случае приложение попытается либо написать, либо, возможно, создать, а затем записать в файл журнала в месте назначения в /var/log и будет не может этого сделать, потому что он запускается пользователем, который не имеет прав на запись в эту часть файловой системы.

Итак, короткий ответ — нет, не удаляйте все в /var/log — он прерывает контрактных пользователей с достаточными привилегиями такие вещи имеют приложения, которые работают в их системе, и будут вызывать некоторый шум, некоторые тихие сбои в регистрации и некоторые тотальные поломки.

Соответствующее действие — установить logrotate с соответствующими конфигурационными файлами. Обычно вращение будет связано с заданием cron. Вращение может быть основано на интервалах, или на основе размера, или и то, и другое. Также возможно настроить правила, которые не допускают поворота на основе интервалов, если файл журнала по-прежнему пуст, когда истекает интервал. Вращение может включать в себя рассылку лог-файлов, сжатие, удаление, измельчение и т. Д.

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

Источник

Как правильно чистить логи в journald (systemd)

Столкнулся с тем, что логи в /var/log/journal/ стали занимать более гига.

Но при этом journalctl не содержит никаких параметров и опций, позволяющих удалить старые записи: например, сделанные до какой-то даты.
Порылся в конфиге /etc/systemd/journald.conf — там есть только про ограничения размеров журналов.
Ограничение я поставил, но journald журналы не обрезал.
Как корректно удалить излишки?

  • Вопрос задан более трёх лет назад
  • 25566 просмотров

«.
Папка полегчала на 600М. Каких либо косяков в работе не вижу.
Но интересует именно чистка по условиям: до даты или обрезать до такого-то размера (в кол-ве записей или в Мб).

В Linux есть штатная утилита logrotate, которую запускает системный планировщик cron, служит для ротации логов у приложений, которые сами этого не делают и многих системных логов. По ее настройке достаточно много мануалов в сети. Умеет в том числе сжимать логи, кидаться в процессы пишущие лог сигналами перезапуска, чтобы корректно выдернуть из под них файл, удалять файлы логов/архивы по истечении лимита времени жизни или размера и многое другое.

И как всегда в Linux есть и топорный способ — заколотить в crontab команду удаления файлов, например старше 5 дней.
find /path/to/files* -mtime +5 -exec rm <> \;

Читайте также:  Как включить защитник windows 10 pro

Спасибо, я прекрасно знаю, что такое logrotate . И я уже сказал, что systemd/journald берут эту функцию на себя.
Журналы journald хранятся в бинарном формате. Причём в одном файле может лежать несколько дней логов, так что ваш топорный способ работать не будет.
Для просмотра логов в journalctl есть опции —since и —until , но удалять логи через утилиту нельзя.
Да, можно настроить так, что journald будет сам удалять логи древнее 5 дней.

Меня интересует накопление логов до тех пор, пока я их не просмотрю. Потом удалить их до (дата просмотра-5 дней), чтобы не хранить кучу хлама.

Источник

Как очистить журналы logs в Systemd

Журнал systemd – это собственная система журналирования systemd. Это эквивалентно системному журналу в системе инициализации. Она собирает и хранит данные журнала ядра, сообщения системного журнала, стандартный вывод и ошибки для различных системных служб.

Машина Linux с systemd записывает журналы в каталог /var/log/journal. Если вы помните структуру каталогов Linux , в /var хранятся системные журналы.

Что касается ведения журнала, то со временем она начинает расти. И если вы проверите дисковое пространство в Linux, вы увидите, что иногда это занимает несколько ГБ.

Позвольте нам показать вам, как очистить журналы systemd и освободить место на диске в вашей системе Linux.

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

Сначала проверьте пространство, занятое журналами журнала, с помощью команды du:

Вы также можете использовать команду journalctl для той же задачи:

Обе команды должны дать примерно одинаковый результат:

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

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

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

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

1. Очистить журнал журнала старше x дней

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

Вот как может выглядеть вывод:

Вы также можете изменить временной интервал предоставления в часах, например, 2 часа, в минутах, например, 2 м, в секундах, например, 2 с. Если вы хотите больше единиц времени, вы также можете 2 недели, 2 месяца.

2. Ограничить журналы до определенного размера

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

Это уменьшит размер журнала примерно до 100 МБ.

Вы можете указать размер в ГБ с G, МБ с М, КБ с К и т. д.

Надеюсь, вам понравится этот быстрый совет по очистке файлов журналов systemd. Если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью