修剪linux日志文件

时间:2013-11-08 17:28:11

标签: linux logging

这似乎是一个微不足道的问题,但我找不到解决办法 我在Debian / Linux上的php安装中有很多日志文件,这些文件往往会增长很多,我想每晚修剪到最后500行左右。 我该怎么做,可能在shell中并将命令应用于* log?

3 个答案:

答案 0 :(得分:3)

为此,我建议您根据自己的喜好使用logrotate,而不是编写自己的脚本。

答案 1 :(得分:1)

可能有一种更优雅的方式以编程方式执行此操作,但可以使用tail和for循环:

for file in *.log; do
    tail -500 "$file" > "$file.tmp"
    mv -- "$file.tmp" "$file"
done

答案 2 :(得分:0)

如果您想保存旧文件的历史记录,请查看logrotate

否则,这可以通过命令行轻松完成:

LOGS="/var/log"
MAX_LINES=500

find "$LOGS" -type f -name '*.log' -print0 | while read -d '' file; do
  tmp=$(mktemp)
  tail -n $MAX_LINES $file > $tmp
  mv $tmp $file      
done