0

毎日午前 4 時に cron を実行するシェル スクリプトを作成して、squid の access.log ファイルのサイズを読み取り、特定のサイズ (20MB) を超えた場合にローテーションします。これが私がこれまでに持っているものです:

#!/bin/sh

ymd=$(date '+%Y-%m-%d')
file=/var/squid/logs/access.log
minimumsize="20000000"
eval $(stat -s /var/squid/logs/access.log)

if [ $st_size > $minimumsize ]; then
    cp /var/squid/logs/access.log /var/squid/logs/access_log_history/access.log.${ymd}
    rm -fr /var/squid/logs/access.log
    squid -k rotate
else
    :
fi

シェル スクリプトは実行されますが、サイズに関係なくログ ファイルをローテーションし、「20000000」という名前のファイルを作成します。それだ。ここでどこが間違っていますか?

4

1 に答える 1

1

独自のシェルスクリプトを書く代わりに、同じことを行う newsyslog(8) を見てください。

于 2015-02-23T12:19:27.390 に答える