最近、ホームディレクトリにコアダンプが作成され、ファイルシステムの空き容量が不足している経験がありました。
AIXに他の場所にコアダンプを生成するように指示するにはどうすればよいですか?
答え1
IBMのこのページには、AIXのコア・ダンプ・ファイルについて知っておくべきことがすべて含まれているようです。
探しているコマンドは次のとおりですchcore
。そのページから抜粋した内容は次のとおりです。
システム内のすべてのアカウントに対して中央コアファイルストアを設定できますが、各アカウントはデフォルト値を上書きしてカスタムストアをインストールできます。このリポジトリに十分な空き容量があるファイルシステムを選択してください。すべてのアカウントには、このディレクトリに対する読み取りおよび書き込み権限が必要です。他のユーザーが作成したコアファイルをユーザーが削除しないようにするには、固定ビットを有効にする必要があります。ディレクトリの権限は通常1777と同じでなければなりません
/tmp
。一意のコアファイル命名を使用してシステム全体のコアファイルストアを設定するには、rootとして次のコマンドを実行します。
$ cd /path/to/filesystem $ mkdir corefiles $ chmod 1777 $ ./corefiles $ chcore -p on -n on -l ./corefiles
注:コアファイルの圧縮を有効にするには、-c onオプションを追加してください。これらの設定は、新しくログインしたアカウントにのみ適用され、再起動後も引き続き適用されます。
システム全体のデフォルトリポジトリをオーバーライドして特定のユーザーのリポジトリを設定するには、そのユーザーとして次のコマンドを実行します。
$ mkdir ~/corefiles $ chcore -p on -n on -l ~/corefiles
答え2
デフォルトでは、コアダンプはcore_patternによって設定された相対パスにのみ配置されます(通常、これはコアプロセスの現在の作業ディレクトリを意味します)。 core_pattern の前に絶対パスを追加すると、そこにダンプが保存されます。
sysctl を使用するか、値を /proc に直接ダンプすることでこれを行うことができます。
たとえば、
$ echo "/tmp/cores/core.%e.%p.%h.%t" > /proc/sys/kernel/core_pattern
これで、コアダンプは/tmp/cores/にあります。
編集:申し訳ありません。 AIX用であることを見逃しました。これを行うには、chcoreユーティリティを使用できます。つまり、chcore -p on -l /tmp/cores/
-d
このフラグを追加してシステムのデフォルト値に設定することもできます。