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

Обновлено: 04.07.2024

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

Использование stdout или перенаправление на Null

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

logfile
или
cat /dev/null > logfile
или
cp /dev/null logfile
или
dd if=/dev/ null of=logfile

Где в последней команде «если» относится к входному файлу, а «из» — к выходному файлу.

Файл устройства /dev/null — это довольно специальный файл, который удаляет любой входной поток, который был перенаправлен на него.

Использование команд true и tee

правда | файл журнала

Вообще при написании:

a_task | tee -файл журнала

Вывод будет помещен в файл журнала и в стандартный вывод.

Использование команды echo

Команду echo можно использовать с пустой строкой и перенаправить в файл следующим образом:

echo "" > файл журнала
или
echo > файл журнала

Пустую строку не следует путать с нулевым значением, поскольку строка представляет собой объект без атрибутов или параметров внутри него. Те, кто разрабатывает на C++ или Java, уже знают, что Null означает, что объект не существует.

Когда вы запустите приведенную выше команду echo, файл будет содержать пустую строку. Чтобы перенаправить нулевой вывод в файл, вы можете положиться на ключ -n, который заставляет echo не выводить конечный символ новой строки.

echo -n "" > файл журнала

Как очистить файл в Linux с помощью усечения

Другим способом было бы использование:

truncate – файл журнала размером 0 [файл журнала очистки Linux]

Команда truncate уменьшает или увеличивает размер файла до нужного размера.
Его можно использовать с ключом -s для указания размера файла. Таким образом, чтобы очистить содержимое файла, вы можете указать размер 0 (ноль), как показано в приведенной выше команде.

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

truncate -s 0 logfile1 logfile2 … [пустой файл журнала linux]

Использование logrotate

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

Использование цикла for

Can также может использовать цикл:

for f in logfile1 logfile2 … ; сделать

Заключение

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

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

Зиад Нахди

Зиад Нахди, поклонник открытого исходного кода и языков программирования. Он технический писатель, блоггер и энтузиаст Linux. Он любит читать и помогать другим с их проблемами. Он увлекается программным обеспечением с открытым исходным кодом, но любит и другие предметы, связанные с технологиями.

Существуют различные способы очистки файла в системе Linux.

  1. Очистить файл журнала с помощью команды truncate. Самый безопасный способ очистить файл журнала в Linux — использовать команду truncate. …
  2. Очистить файл журнала с помощью :> или true > …
  3. Очистить файл журнала с помощью команды echo. …
  4. Очистить файл журнала с помощью команды dd.

Как удалить несколько файлов журналов в Linux?

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

Как очистить файл журнала?

Удалить сохраненный файл Console.log

  1. Запустите средство просмотра событий → Файл (в меню) → Параметры (здесь вы увидите место на диске в вашем файле и сколько места занимают сохраненные файлы в вашем профиле).
  2. Нажмите "Очистка диска", а затем "Удалить файлы".
  3. Теперь выйдите и нажмите OK.

Можно ли удалить системный журнал?

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

Безопасно ли удалять файлы журнала var?

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

Можно ли удалить журнал демона?

Вы можете удалить файлы журнала с помощью rm

<р>. Также вам необходимо перезапустить программы, которые ведут журнал, например, syslog.Если файл был открыт при его удалении, он фактически не будет удален, пока программа не закроет его или не выйдет. В первую очередь вам нужно знать, что создает журналы.

Как использовать Logrotate в Linux?

Управление файлами журналов Linux с помощью Logrotate

  1. Конфигурация logrotate.
  2. Установка значений по умолчанию для logrotate.
  3. Использование параметра включения для чтения других файлов конфигурации.
  4. Настройка параметров поворота для определенных файлов.
  5. Использование параметра включения для переопределения значений по умолчанию.

Как очистить файл журнала в Unix?

Есть ли правильный способ очистки файлов журналов в Unix? Вы можете просто обрезать файл журнала, используя > синтаксис имени файла. Например, если имя файла журнала /var/log/foo, попробуйте > /var/log/foo от имени пользователя root.

Как отменить связь файлов в Linux?

Как удалить файлы. Вы можете использовать команду rm (удалить) или unlink, чтобы удалить или удалить файл из командной строки Linux. Команда rm позволяет удалить сразу несколько файлов. С помощью команды unlink вы можете удалить только один файл.

Мне интересно, существует ли вообще правильный способ очистки журналов?

Я новичок в Ubuntu и пытаюсь настроить Postfix. Лог, о котором идет речь, это /var/log/mail.log . Мне было интересно, есть ли правильный способ очистить его, вместо того, чтобы входить в него, удалять все строки и сохранять его. Я обнаружил, что иногда ошибки не записываются сразу после того, как я очищаю журнал и сохраняю его.

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

Если вы хотите просто увидеть конец файла, то хвост вам в помощь. tail /var/log/mail.log для отображения последних 5 строк. tail -f /var/log/mail.log для просмотра всех строк, записанных в конец файла.

9 ответов 9

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

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

Ctrl-C прервет хвост.


Как я могу запланировать это? размещение > синтаксиса в crontab не выполняется, так как он может не распознавать его как синтаксис

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

Вы тоже можете использовать это..

Здесь все файлы журналов в /opt/package/logs станут пустыми..


На самом деле это очень хороший ответ, и действительно единственный, который прямо отвечает на вопрос, есть ли правильный способ усекать файлы журналов. КАК это лучше, чем другие ответы, так это то, что он не УДАЛЯЕТ файл журнала, он правильно обнуляет содержимое, поэтому в этом случае не возникнет ошибок разрешений и отсутствующих файлов журнала, которые вызывают панику у некоторых демонов.

Да, есть правильный способ: вообще не очищать журналы. Вы поворачиваете их. Ротация включает в себя переключение вывода журнала в новый файл с тем же именем, при этом предыдущие N файлов журнала хранятся в наборе N связанных имен файлов.

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

Если программа, пишущая файл журнала, представляет собой, например, multilog из пакета daemontools, то вы вообще ничего не делаете для ротации журналов — никаких ручных сценариев, никаких заданий cron. Просто скажите multilog, что журнал выводится в каталог, и он сам будет поддерживать в этом каталоге автоматически чередующийся и ограниченный по размеру набор из N файлов журнала.

Если программа, пишущая файлы журналов, называется svlogd из пакета runit, например, то почти то же самое. Вы вообще ничего не делаете, кроме указания инструмента на каталог. Он сам будет поддерживать автоматически чередующийся и ограниченный по размеру набор из N файлов журнала в этом каталоге.

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

Старый способ ротации журналов syslogd, по-прежнему ожидаемый программами ведения журналов, такими как syslog-ng, и примером которого являются такие инструменты, как logrotate, упомянутые djangofan в другом ответе здесь, несколько более бессистемен. Один из них запускает задание cron, которое периодически переименовывает файлы журналов и перезапускает демон регистрации (используя любой супервизор демона, под которым он работает). Проблема с этим, конечно, в том, что он не обеспечивает ограничение общего размера. В плохие недели можно получить N очень маленьких файлов журнала за день, тогда как в загруженные дни можно получить 1 очень большой файл журнала, размер которого значительно превышает установленный лимит.

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

Иногда при работе с файлами в терминале Linux может потребоваться очистить содержимое файла, не обязательно открывая его с помощью каких-либо редакторов командной строки Linux. Как этого добиться? В этой статье мы рассмотрим несколько различных способов очистки содержимого файла с помощью некоторых полезных команд.

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

При этом ниже приведены способы очистки содержимого файла из командной строки.

Важно! В целях этой статьи мы использовали файл access.log в следующих примерах.

1. Пустое содержимое файла путем перенаправления на null

Самый простой способ очистить содержимое файла с помощью оболочки, перенаправляющей нуль (несуществующий объект) в файл, как показано ниже:

 Пустой большой файл с использованием нулевого перенаправления в Linux

2. Пустой файл с использованием «настоящего» перенаправления команд

Здесь мы будем использовать символ : это встроенная команда оболочки, которая по сути эквивалентна настоящей команде и может использоваться как неоперативная (без операции).

Еще один способ — перенаправить вывод встроенной команды : или true в файл следующим образом:

Пустой большой файл с помощью команд Linux

3. Пустой файл с помощью утилит cat/cp/dd с /dev/null

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

Поэтому файл устройства /dev/null является специальным файлом, который списывает (удаляет) любые отправленные ему входные данные или его выходные данные такие же, как у пустого файла.

Кроме того, вы можете очистить содержимое файла, перенаправив вывод /dev/null в него (файл) в качестве ввода с помощью команды cat:

 Пустой файл с помощью команды cat

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

Содержимое пустого файла с помощью команды cp

В следующей команде if означает входной файл, а of указывает на выходной файл.

Содержимое пустого файла с помощью команды dd

4. Пустой файл с помощью команды echo

Здесь вы можете использовать команду echo с пустой строкой и перенаправить ее в файл следующим образом:

 Пустой файл с помощью команды echo

Примечание. Следует помнить, что пустая строка — это не то же самое, что null. Строка уже является объектом, поскольку она может быть пустой, а значение null просто означает отсутствие объекта.

По этой причине, когда вы перенаправляете команду out из вышеприведенной команды echo в файл и просматриваете содержимое файла с помощью команды cat, печатается пустая строка (пустая строка).

Чтобы отправить пустой вывод в файл, используйте флаг -n, который указывает эхо не выводить конечный символ новой строки, ведущий к пустой строке, созданной в предыдущей команде.

 Пустой файл с нулевым перенаправлением

5. Пустой файл с помощью команды truncate

Команда truncate помогает уменьшить или увеличить размер файла до определенного размера.

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

 Обрезать содержимое файла в Linux

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

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

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Поддержите нас

Мы благодарны за вашу бесконечную поддержку.

Похожие записи

 Отключить Su Access для пользователя

 Переместить домашний каталог в новый раздел

Система Linux Команды администратора

 Как скачать файлы в Linux

Примеры Linux Cron

Linux Vmstat и команды Iostat

14 мыслей о «5 способов очистить или удалить содержимое большого файла в Linux»

Есть ли способ очистить половину файла вместо полной очистки?

Допустим, мне нужен файл с журналами за последние 10 дней, и я могу удалить/очистить данные старше 10 дней (я не хочу архивировать этот файл и заменять новый файл свежими журналами), могу ли я сделать половину файл очистить в файл?

Должен быть способ, но мы должны провести небольшое исследование, прежде чем мы сможем дать вам решение.

Дорогие, у меня есть файл журнала, в котором есть журналы за 3 месяца, как я могу просто сохранить журнал за последние 30 дней, а остальное удалить? Как это сделать?

Как указать это условие, если размер файла журнала увеличивается на 2 ГБ, а затем очистить данные за один месяц.

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

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

Как удалить содержимое (файлы и каталоги) в одной папке за один раз.

Проблема в том, что файл создается или удаляется автоматически (создается динамический файл)

Я знаю, что > и :> — это методы, которые очищают файл, фактически не «касаясь» его, если файл используется.

Другие методы работают так же? Мы всегда получаем билеты для больших файлов и в 80% случаев нам нужно сжать содержимое файла и обрезать или «обнулить» его, но с проблемой, что файл используется, и мы не можем остановить процесс, использующий его. .

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

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

Когда я открывал эту ссылку, я ожидал способов избавиться от содержимого файла на диске. Все эти методы только отсоединяют место на диске от файла, оставляя содержимое на диске.
Однако из перечисленных вариантов я думаю, что «truncate -s 0 » — лучший вариант.

Система пропустила слово «файл» в конце команды truncate, потому что я поставил его со знаками lt и gt.

Существуют и другие методы полного удаления содержимого файлов с диска, такие как команда shred и некоторые другие. Вскоре мы создадим руководство по этой теме.

Еще один простой вариант с использованием команды cat:
cat > /path/to/file
Затем нажмите Ctrl+D
Вуаля, пустой файл.

Большое спасибо за полезный совет, он, конечно, тоже простой.

Все трюки с перенаправлением «>» одинаковы!

>file
: >file
true >file
cat /dev/null >file
my_prog >file (если my_prog ничего не выводит)

поскольку оболочка усекает (или создает) «файл» перед запуском команды (cat, true, …), наиболее важным является то, что команда не производит вывода.

вы можете понять, что >файл лучше, потому что для него не нужна другая программа!

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

Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ

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

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

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

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

Вместо создания нового пустого файла вы можете удалить его содержимое. Итак, как очистить файл в Linux? Как очистить файл от всего его содержимого, не удаляя сам файл?

4 способа очистить файл в Linux

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

Способ 1: обрезать файл с помощью команды truncate

Самый безопасный способ усечь файл журнала — использовать команду truncate.

В приведенной выше команде параметр -s используется для установки/регулировки размера (в байтах) файла. Когда вы используете -s 0, это означает, что вы установили размер файла на 0 байт. В

Метод 2: очистить файл с помощью :> или >

Самый простой способ очистить файл — использовать приведенную ниже команду. Если файл не используется, он будет работать в Bash:

Хотя описанное выше работает только в Bash Shell, вы можете использовать аналогичную команду для других оболочек:

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

Способ 3: Использование команды echo для очистки файла в Linux

Еще один способ очистить файл — использовать команду echo в Linux:

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

Способ 4. Используйте /dev/null для очистки файла

Вы также можете использовать известную команду /dev/null в сочетании с командой cat для очистки файла журнала:

В конце…

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

Вы также можете очистить файл, удалив все строки в редакторе Vim.

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

Справочник по Linux Абхишек Пракаш


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

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