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