サーバーでnohupを使用してコマンドを実行していますが、出力ファイルが大きすぎてプロセスを完了するのに1ヶ月かかることが予想されます。プロセスの実行中にnohup出力ファイルを変更する方法はありますか?
答え1
これアイデア他の質問へのリンクに誤った(そして受け入れられていない)回答があっても、コメントの1つに提供されるものは通常行われます。
POSIX シェルでファイルを切り捨てるには、次のようにします。
cat /dev/null > _name_of_file_
cp
リンクの答えの1つが提案するものとは異なります。もちろん、以前のファイルを最初に保存したい場合は、別のファイルシステムまたはリモートの場所にコピーすることをお勧めします。
低レベルの観点からの違いは、次のものを開きたいということです。既存のファイルとそのinodeを削除して切り取ります。バラよりhttp://man7.org/linux/man-pages/man2/open.2.htmlそしてO_TRUNC
オプション。
特別な状況で動作するもう一つのことです。私は時々/etc/logrotate.d
ファイルがどのように変わるかを確認するために(または他の適切なログローテーションプログラムを)チェックします。一部のコマンド(apache2など)には、reload
構成ファイルをロードしてプロセスがログファイルを再度開くようにするコマンドがあります。
答え2
出力を別のファイルにリダイレクトできるこの小さくてきれいなユーティリティが見つかりましたが、すべてがうまく機能しました。このユーティリティはリダイレクトと呼ばれ、次の場所にあります。https://github.com/jerome-pouiller/reredirect/
次の簡単なコマンド:reredirect -m FILE PID
作業を完了してください。