最近、hadoop テスト クラスターで spark ストリーミング プログラムを実行し、その後、nohup ./execute.sh & を使用してプログラムをバックグラウンドで実行しました。わずか数日で、ログ ファイルが G を超えました。問題が発生してログ ファイルを表示したい場合、ファイルを開くのは明らかに面倒なことですので、次の方法でファイル サイズを縮小しようとしました。 1. nohupコマンドの説明: a. 構文: nohup [コマンド] [引数] [&] b. 説明: nohup コマンドは、Command パラメータと関連する Arg パラメータで指定されたコマンドを実行し、すべてのハングアップ信号を無視します。ログアウト後にプログラムをバックグラウンドで実行するには、nohup コマンドを使用します。 nohup コマンドをバックグラウンドで実行するには、コマンドの末尾に & (「and」の記号) を追加します。リダイレクトを指定しない場合、ログはデフォルトで現在のディレクトリの nohup.out ファイルに出力されます。 一般的には次のように送信します: nohup ./execute.sh & ログまたは出力が現在実行中のディレクトリにあるようにします。nohup.out リダイレクト: nohup ./execute.sh > /home/xxx/log.log 2>&1 & : この方法では、ログは指定されたディレクトリにリダイレクトされます。 2. nohup.outを分割して無制限に大きくなるのを防ぐ ここで使用する一般的な送信コマンドは、nohup ./execute.sh & です。これにより、現在のディレクトリに nohup.out ファイルが作成されます。この時点で、nohup.out を定期的に複数の小さなファイルに分割する方法を見つけることができますが、同時に nohup.out が無制限に大きくならないようにしてください (通常、プログラムを中断することはできません)。 a. 毎日(必要に応じて時間を設定)、前日のログを定期的に分割します(たとえば、1日あたり約1gの場合、1回あたり約100mに分割できます)。 b. 分割後、新しい出力ログが引き続きnohup.outに出力されるように、nohup.outファイルが保存されます。 上記はシェル内 current_date=`日付 -d "-1 日" "+%Y%m%d"` split -b 65535000 -d -a 4 nohup.out ./log/log_${current_date}_ ここで、split コマンドは、nouhup ファイルを指定されたサイズ (65535000b は約 60 MB で、サイズはカスタマイズできます) に従って分割し、指定された形式 (0000 から始まる 4 桁のサフィックスを持つ -d -a 4、詳細については、Baidu の split コマンドの使用方法を参照してください) に分割するために使用され、最終的な出力形式は log_20160610_0001 です。 cat /dev/null > nohup.out (このコマンドはnohup.outファイルを即座にクリアし、後でファイルに書き込みを続けます)、ログを/dev/nullに送信します。 リダイレクトされた出力を使用しても同じことができますが、代わりにリダイレクトされたファイル名が使用されます。 これらのコマンドをシェル ファイルで定義し、毎日定期的に実行します。こうすることで、毎日のログが複数の部分に分割され、トラブルシューティングやログ バックログが大きすぎる場合に便利です。履歴ログを定期的に削除し、過去数日分のログのみを保持することができます。 全体的なコードは次のとおりです。 this_path=$(cd `dirname $0`;pwd) $this_path を cd $this_path をエコーする current_date=`日付 -d "-1 日" "+%Y%m%d"` $current_date をエコーする 分割 -b 65535000 -d -a 4 /home/.../nohup.out /home/.../log/log_${current_date}_ cat /dev/null > nohup.out 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: 画像のシームレスなスクロールを実現する JavaScript タイマー
1 QPS 計算 (1 秒あたりのクエリ数) MyISAMエンジンベースのDBの場合 MySQL&g...
前回の記事では、入力完了の簡単な検出を実現しましたが、今回はさらに一歩進んで、入力が完了した後に次の...
時間フィールドを作成するときデフォルトのCURRENT_TIMESTAMPデータを挿入する際、このフ...
この記事では、9グリッドクリックの色変更効果を実現するためのJavaScriptの具体的なコードを参...
目次1. コンポーネントの登録1.1 グローバル登録1.2 グローバルコンポーネントの登録プロセス1...
その理由はモッカー プラットフォームを導入したかったので、友人の勧めで既成のプロジェクト api-m...
この記事では、例を使用して、MySQL のさまざまな一般的な結合テーブルクエリについて説明します。ご...
序文多くの Web アプリケーションは、リレーショナル データベース管理システム (RDBMS) に...
目次1. SparkとHadoopの比較1.1 Haoopの欠点1.2 Hadoop MR に対する...
Docker プロセス、メモリ、カップ消費量を表示dockerコンテナを起動し、dockerinsp...
目次1. Dockerファイル2. pom 構成3. イメージプッシュ4. k8s デプロイメント前...
目次1. パノラマII. 背景1. 反応: プロフェッショナル2. ビュー: 凡例3. 技術的な思考...
免責事項:このパスワード リセット方法は、Homebrew によってインストールされた MySQL ...
Windows Server 2008R2を忘れた場合の対処方法サーバーの数が多すぎる、サーバーが多...
1. フォーム1. フォームの役割HTML フォームは、さまざまな種類のユーザー入力を受け取り、ユー...