我希望创建一个 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吗?我觉得它不适合用来清除日志。