web-dev-qa-db-ja.com

rsyslogを使用してログファイルを手動でローテーション

logrotate -f /var/log/syslogを使用してログファイルのローテーションを強制したいのですが、返されるのは次のトーンだけです。

error: syslog:1 unknown option 'May' -- ignoring line
error: syslog:1 unexpected text

このシステムでrsyslogdが実行されていることを知っています。 /var/log/syslogを回転させる方法は?空にしたい。

10
kbec

コマンドラインでどのファイルをローテーションするかをlogrotateに指示することはありません。設定ファイルを渡します。したがって、あなたの場合、logrotate/var/log/syslogを読み取り、それを構成ファイルとして解析しようとして失敗します(そのため、エラーが発生します)。

/var/log/syslogをローテーションしたい場合は、logrotate構成ファイルのどこかにリストする必要があり、logrotateを実行するだけです。最近ローテーションした場合は、logrotate -fを使用して強制的に再度実行します。

これは、Debianの/var/log/syslogのエントリの例です。

/var/log/syslog
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

したがって、通常は/etc/logrotate.confまたは/etc/logrotate.dのファイルスニペットとして、/etc/logrotate.confがそこを指していると仮定して、ファイルでそれを必要とし、次にlogrotate /etc/logrotate.confを実行します。

Debianを実行しているので、おそらくこれですべてが整い、実際に実行する必要があるのはlogrotate -f /etc/logrotate.confを実行することだけです(注、これはローテーションしますeveryログ現在logrotateで構成されています)。

truly/var/log/syslogのみをローテーションする場合は、/etc/logrotate.conf + /etc/logrotate.d/rsyslogの内容に基づいて、その1つのログのみを実行する構成ファイルを作成する必要があります。

23
EightBitTony