
私は、決して終了しないように設計されたプログラムを書いています。また、実行内容の大きなログ (ファイル) も生成します。私が望んでいるのは、Linux プロセスが定期的に (X 分ごと (cronjob?)) 実行することです。
- 現在のログファイルから現在のログを取得します
- オフラインでの保存/削除用に別のファイル(適切な名前)に配置する
- データが重複しないように現在のログファイルを切り捨てます。
全てデータの損失や中断なしに生成プログラムに渡します。こうすることで、時間で区切られたログのシーケンスが完成します
これに対する Linux ユーティリティまたは既知の解決策はありますか? または、このログ機能をプログラムに組み込む必要がありますか?
答え1
Linux はsyslogd
ログ ファイルの管理に使用します。私は個人的にこれを使用したことがないので、何が問題なのかはわかりませんが、基本的にはログにメッセージを送信するだけで、デーモンがファイルのローテーションなどを処理します。
こちらをご覧ください:http://linux.die.net/man/3/syslog
/etc/syslog.conf
メッセージを特定のファイルにルーティングするように設定し、 を使用してログを手動でローテーションしたりlogrotate
、cron ジョブを設定したりすることもできます。
答え2
通常、デーモンはログを書き込むだけで、それ以上のことはしません。ログのローテーションは別のソフトウェアの仕事です。通常、ログローテートまたは同様のソフトウェア。