Logrotate:ログファイルが回転しません。

Logrotate:ログファイルが回転しません。

循環ログファイルを使用しようとしていますlogrorate。構成は次のとおりです。

/etc/logrotate.conf:

/var/log/test.log {
        size 1M
        rotate 6
        create
        dateext
        nocompress
}

その後、seqtoコマンドを使用していくつかのデータをダンプしましたが、/var/log/test.logファイルは自動的に回転しません。

ls -ltrh test.log
-rw-r--r-- 1 root root 1.3M Jan 27 09:56 test.log

force を使用して回転しようとすると、logrotate -f test.log出力は次のようになります。

error: test.log:37156 lines must begin with a keyword or a filename (possibly in double quotes)
error: test.log:37157 lines must begin with a keyword or a filename (possibly in double quotes)
error: test.log:37158 lines must begin with a keyword or a filename (possibly in double quotes)
error: test.log:37159 lines must begin with a keyword or a filename (possibly in double quotes)

修正が必要な場合は、ご提案ください。

答え1

logrotateの引数は構成ファイルであると予想されるため、test.logのエラーは誤った構成ファイルに関するものです。努力する:

logrotate -f /etc/logrotate.conf

それでも問題が解決しない場合は、-dデバッグログをオンにするオプションを試してみてください。最後に、logrotateにログファイルを回転させるように指示する唯一の方法は、そのステータスファイル/var/lib/logrotate.statusを変更するだけの状況に直面しました。このファイルの形式は次のとおりです。

logrotate state -- version 2
"/path/to/a.log" 2015-1-26-11:0:0
"/path/to/another.log" 2015-1-26-11:0:0

2番目の列は、ファイルが最後に変更された日付です。 logrotateを実行するために、日付をさらに過去にプッシュできます。ただし、構成に応じてサイズベースの回転を使用するため、これは必要ありません。

答え2

このエラーは問題に関するヒントを提供します。このlogrotateファイルをどのように作成しましたか?ファイルに無効なデータまたはキャリッジリターンが含まれている可能性があります。

レビューをお勧めしますこの回答ファイルの確認方法の提案。または、少なくとも直接ファイルを再作成してください。そのファイルにコンテンツをコピーして貼り付けると、ファイルに密かに何かがある可能性があります。

関連情報