Aix

在 vi 中打開大儲存日誌文件

  • January 21, 2017

我在 AIX 分區中有一個儲存日誌。當我嘗試使用 vi 命令編輯文件時,我收到以下消息:ex: 0602-101 Out of memory saving lines for undo delete lines

我不想擴展文件限制來讀取文件。相反,我想刪除一些行以減小文件大小。

如何指定刪除文件的所有內容,除了最後 10000 行?

我認為這是正確的方法,但效果不佳:1,$-10000d

不要使用 Vi刪除除最後 10000 行之外的所有內容,而是將它們過濾到一個新文件中(無論如何,您通常都不想編輯日誌文件)。

$ tail -n 10000 logfile >logfile.tail

然後,您可以根據需要替換logfilelogfile.tail

$ mv logfile.tail logfile

由於某些寫入日誌文件的程序可能會在程序退出之前保持日誌文件打開以進行寫入,因此即使舊日誌文件被較短的版本替換,一些新消息也可能會寫入舊日誌文件。這些日誌消息會失去。

要解決此問題:

$ cat logfile.tail >logfile

這將截斷 logfile(清空它而不刪除它),然後將其內容替換為logfile.tail. 這也意味著來自已logfile打開寫入的程序的任何消息都不會失去。

還可以考慮放置某種自動日誌文件輪換,以避免日誌文件過大。

引用自:https://unix.stackexchange.com/questions/338875