些細な問題のようですが、解決策が見つかりませんでした。
Debian/Linux の php インストールには、かなり大きくなる傾向のある多数のログ ファイルがあり、最後の 500 行程度に毎晩トリミングしたいと考えています。おそらくシェルで、コマンドを *log に適用する方法を教えてください。
質問する
4993 次
3 に答える
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 に答える