用于从日志文件中删除 6 个月前的日志的 shell 脚本

Sha*_*tar 2 linux ubuntu shell shell-scripting ubuntu-14.04

我有一个大小为 6.2 GB 的日志文件,它正在被进程使用,并且它不断地将日志写入这个文件。现在我不想轮换日志,但是我想清理这个日志文件。我想从这个文件中删除超过 6 个月的日志。是否可以使用 shell 脚本读取日志文件并删除超过 6 个月的日志?

下面是日志格式

10.0.3.xx - - [17/Jun/2016:14:21:59 +0000] "GET /visible_topics HTTP/1.1" 200 581 "-" "help/97a1dd7eb981421b9719adde381560a78bed0b66 (ip-10-0-3-xxx; user1; 4411) ruby/2.3.0 (0; x86_64-linux)" 
Run Code Online (Sandbox Code Playgroud)

sho*_*hok 9

解决方案真的是使用logrotate:它工作得很好,并且还可以压缩旋转的日志。

如果你真的不想使用 logrotate,你必须手动将日志文件的相关部分 cat/copy 到一个新的,然后删除旧的。

如果没有您的日志格式的详细示例,就不可能为您提供有关所需 shell 命令的任何建议。

无论如何,你真的应该使用 logrotate。