
職場では、私はネットワークサーバーの管理責任を受け継いだ。 Amazon AWS EC2 で動作する CentOS Linux 仮想マシンです。 Webページを提供することに加えて、多くのスケジュールされたタスク、バックグラウンド処理、およびデータベースタスクが発生します。
私は私がOracle SQL * PlusというBashスクリプトを手動で実行していました。このスクリプトは、UPDATEステートメントペイロードを含むSQLスクリプトを読み取り、マテリアライズドビューの更新を呼び出しました。たぶんこのうち何も関係がないかもしれませんが、いくつかの文脈を提供したいと思いました。
Bashスクリプトはのログファイルに出力を書き込み、/tmp
このコマンドを使用してtail -f output.log
出力を監視します。長時間(約20分)実行され、出力は端末にゆっくり表示されますが、次のメッセージが表示されます。tail: output.log: file truncated
Bashスクリプトの実行が停止しました。ログファイルは存在し/tmp
ますが、サイズは0です。問題を解決するためにログファイルをよく見て、どのデータベースエラーが報告されているかを確認したいと思います。
私の質問は、このファイルの切り捨てが発生する原因は何ですか?ファイル自体はそれほど大きくないようです。約200行程度です。これは私にとってすべて新しいもので、どこから始めるべきか、何が間違っているのか疑うことはできません。
答え1
/ tmpで実行するように構成される可能性はありませんが、logrotateツールは回転を実行するとファイルを切り捨てることができます。
また、プロセスが追加フラグなしでファイルに書き込むと、ファイルは切り捨てられます。 Bashでは、これは単一の>>と二重>>"の違いです。他の言語では"w"パターンではなく"a"パターンを使用します。これはすべてログを作成するプロセスによって異なります。