Где опция -i в sed хранит строки, соответствующие регулярному выражению?

Я пытаюсь освободить место на hd сервера, поэтому я сопоставляю старые даты в файле журнала с sed, и он уменьшается, но мой корневой раздел теперь использует 98% процентов его пространства вместо 91%, который он использовал, прежде чем я вызову СЕПГ. Я сделал это sed -i '/^Jan/ d' file.log и мой файл журнала уменьшен с 6G до 400M. Я использую find / -size +1G пытаясь найти временный файл или что-то в этом роде, но он не соответствует новым файлам. Изменить: я сделал echo -n > file.log чтобы избежать сбоя службы, но это временное, потому что проблема остается

2 Solutions collect form web for “Где опция -i в sed хранит строки, соответствующие регулярному выражению?”

Параметр --in-place для sed не может действительно редактировать файл на месте, поэтому он фактически выполняет эквивалент:

 if sed ... input > /tmp/output$$ ; then mv /tmp/output$$ input else rm /tmp/output$$ fi 

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

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

Посмотрите на mount и df /tmp и df /var/log чтобы узнать, как настроен ваш диск. Вам либо необходимо:

  1. исправить дисковый монтаж
  2. получить больший диск
  3. заглянуть в logrotate
  4. так много стоп
  5. или некоторая комбинация вышеуказанного

Запуск strace на sed -i должен сделать его довольно очевидным, когда он помещает временные файлы. Но самое легкое, что нужно сделать, это не использовать -i. Перенаправить вывод в файл на раздел, где у вас есть место.

  • Не могли бы вы объяснить это создание «chroot» / tmp?
  • Доступный временный файл с одним процессом
  • Команда (ы) установить tempfile на CentOS 6.4
  • Почему root утрачивает разрешение символической ссылки 1-го и 2-го уровней?
  • Безопасно ли rm -rf / tmp / *?
  • Не удается войти в мою систему Debian Wheezy 7
  • как автоматически очистить не удалось загрузить PHP в / tmp?
  • В какую папку я должен писать для своих промежуточных файлов, как dev?
  • флаг noexec для / tmp (OpenSUSE)
  • как удалить временные и лог-файлы с помощью терминала на vps?
  • Почему `systemd-tmpfiles -clean` не работает?
  • Linux и Unix - лучшая ОС в мире.