这似乎是一个微不足道的问题,但我没有找到解决方案。
我在 Debian/Linux 上的 php 安装中有许多日志文件,它们往往会增长很多,我想每晚修剪到最后 500 行左右。我该怎么做,可能在 shell 中并将命令应用于 *log?
问问题
4993 次
3 回答
3
为此,我建议使用logrotate
您喜欢的配置,而不是编写自己的脚本。
于 2013-11-08T17:41:02.963 回答
1
可能有一种更优雅的方式以编程方式执行此操作,但可以为此使用tail
for 循环:
for file in *.log; do
tail -500 "$file" > "$file.tmp"
mv -- "$file.tmp" "$file"
done
于 2013-11-08T17:43:00.317 回答
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
于 2013-11-08T17:41:40.300 回答