Bash 编辑文件并保留最后 500 行

Bash 编辑文件并保留最后 500 行

我希望创建一个 cron 作业,打开一个目录,循环遍历我创建的所有日志并删除所有行但保留最后 500 行。

我在想

tail -n 500 文件名 > 文件名

这有用吗?

我也不确定如何在 bash 中循环遍历目录

提前致谢。

答案1

for file in *; do tail -n 500 filename > filename2 && mv filename2 filename ; done

写入您正在读取的文件不是一个好主意。我的解决方案也不好,因为您可能会在 tail 和 mv 命令之间丢失日志。
但无论如何

for file in *;

是一种循环遍历目录文件的方法。

但是为什么不使用 logrotate 呢?

答案2

你听说过logrotate吗?我觉得它不适合用来清除日志。

相关内容