循環ログファイルを使用しようとしていますlogrorate
。構成は次のとおりです。
/etc/logrotate.conf:
/var/log/test.log {
size 1M
rotate 6
create
dateext
nocompress
}
その後、seq
toコマンドを使用していくつかのデータをダンプしましたが、/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ファイルをどのように作成しましたか?ファイルに無効なデータまたはキャリッジリターンが含まれている可能性があります。
レビューをお勧めしますこの回答ファイルの確認方法の提案。または、少なくとも直接ファイルを再作成してください。そのファイルにコンテンツをコピーして貼り付けると、ファイルに密かに何かがある可能性があります。