2

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

4

3 に答える 3

1

これをプログラムで行うより洗練された方法があるかもしれませんが、これにはtailfor ループを使用できます。

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 に答える