У Unix, який найкращий спосіб зменшити розмір масивного файлу журналу, який активно записується?


11

На сервері linux я хочу зменшити розмір файлу журналу, який має кілька ГБ. Відрізання верхньої половини, а може, перший мільйон рядків спрацює.

Відповіді:


12

Це трапляється в інтерв'ю досить часто ...

Ви хочете усікати файл, не порушуючи процеси? Чи є якась інформація у файлі журналу цінною? Якщо так, я, як правило, "нулю" файл простим рядком bash.

: > /var/log/badlogfile

Це виникає в ситуаціях, коли у вас може бути програма, яку неможливо перезапустити контрольованим чином. Скажімо, це додаток для фінансової торгівлі, і програма не може бути зупинена або перезапущена протягом торгового дня. Однак файли журналів зростають з нецензурною швидкістю через помилку програми. Обрізання файлів журналів методом вище чи нижче може підтримувати роботу системи.

Також дивіться: http://www.cyberciti.biz/faq/truncate-large-text-file-in-unix-linux/


1
чи двокрапка повинна вказувати на підказку, чи це насправді переходить до команди?
Філ

Двокрапка є частиною команди.
ewwhite

Товста кишка вам не потрібна.
MikeyB

Це не-оп. Це не потрібно, але я люблю тримати його там, коли я даю рекомендацію.
ewwhite

Це не спрацювало для мене, журнал не змінився за розміром. Він перейшов до 0, але потім повернувся до повного розміру
Тейліха

2

Ви можете покласти його в логротат, тоді він не вийде з-під контролю так легко


Зрештою, це має відбутися. Я новачок у цій роботі ...
Phil

1

Якщо це активно пишеться, у вас насправді не так багато, що ви можете зробити шляхом укорочення. Ваші єдині варіанти - видалити файл (ви можете скопіювати його спочатку в іншому місці).

echo "" >/var/log/fileYouWantToEmpty

Таким чином файл закінчується порожнім, але все-таки є тим самим файлом / inode, щоб він не порушив програму, що веде журнал.


0

Ви також можете спробувати cat / dev / null> / var / log /. Але я повинен попередити, що / dev / null не реалізовано в деяких старих версіях ...


обрізка файлу для мене не працює, я зробив тест на centos 7 і на redhat 5
c4f4t0r
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.