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

标签 bash logging tail

我正在寻找创建一个 cron 作业,它打开一个目录循环遍历我创建的所有日志并删除所有行,但保留最后 500 行,例如。

我在想一些类似的事情

tail -n 500 文件名> 文件名

这行得通吗?

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

最佳答案

如果要截断的日志文件当前被某些服务打开,那么像以前的答案一样使用 mv 将中断这些服务。这可以通过使用 cat 来轻松克服:

tail -n 1000 myfile.log > myfile.tmp
cat myfile.tmp > myfile.log

关于Bash 编辑文件并保留最后 500 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2880819/

相关文章:

linux - 函数内的函数未返回预期值

email - Logback SMTPAppender 不适用于 gmail 配置

sql-server - 如何让 SQL Server 跟踪日志文件并将新行写入表?

java - 在日志中按字母顺序排序?

ruby - 修剪在 Ruby 中被拖尾的日志文件

java - 如何在不打开文件的情况下像 "Tail -f"那样在 Java 中跟踪文件(防止重命名/删除)

linux - 防止 bash 脚本挂起

linux - 尝试从 ansible 中通过 screen 启动进程

bash 用于进行数值比较和文件存在

java - Logback - 如何单独记录异常的简单名称