ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
マニュアルページセクション 1M: システム管理コマンド Oracle Solaris 11 Information Library (日本語) |
- サービス構成のインポート、エクスポート、および変更
/usr/sbin/svccfg [-v] [-s FMRI]
/usr/sbin/svccfg [-v] [-s FMRI] subcommand [args]...
/usr/sbin/svccfg [-v] [-s FMRI] -f command-file
svccfg コマンドは、サービス構成リポジトリ内のデータを操作します。svccfg は、個別のサブコマンドを使用するか、一連のサブコマンドが格納されているコマンドファイルを指定することで、対話形式で呼び出すことができます。
通常、リポジトリ内の既存のサービスに加えた変更は、次にサービスインスタンスが更新されるまでサービスに反映されません。詳細については、svcadm(1M) マニュアルページの refresh サブコマンドを参照してください。
次のオプションがサポートされています。
svccfg サブコマンドを command-file から読み込んで実行します。
サブコマンドを実行する前に、FMRI (障害管理リソース識別子) で指定されているエンティティーを選択します。smf(5) を参照してください。
冗長。
サブコマンドは、あとに続くサブセクションに指定されたカテゴリに分けられます。
FMRI を受け入れるサブコマンドはすべて、省略形や展開パターンも受け入れます。インスタンスおよびサービスは、インスタンス名、またはサービス名の最後の部分を指定する方法で、省略して入力することができます。たとえば、次のような FMRI を仮定します。
svc:/network/smtp:sendmail
この場合、次に示す省略形はすべて有効です。
sendmail :sendmail smtp smtp:sendmail network/smtp
これに対し、次のものは無効です。
mail network network/smt
FMRI の省略形は不安定なので、スクリプトやその他の長期に渡って使用するツールには使用しないでください。パターンが複数のインスタンスまたはサービスに一致する場合は、エラーメッセージが表示され、処理は行われません。
すぐに終了します。
repfile をリポジトリとして使用します。デフォルトでは、svccfg(1M) はシステムリポジトリを使用します。
リポジトリは、現在実行しているのと同一バージョンの Solaris のファイル (パッチを含む) とのみ使用してください。このサブコマンドをシステムリポジトリ /etc/svc/repository.db とともに使用しないでください。
svccfg repository を使用して、導入時間の前に SMF リポジトリを事前に生成する場合は、-p オプションを使用して、import でインポートされたマニフェストのシステム標準の場所にルートプレフィックスを指定します。リポジトリを稼働中のシステムに配置すると、このプレフィックスは /lib/svc/manifest および /var/svc/manifest で置き換えられます。-p ディレクトリにあるマニフェストが実行時にシステム標準の場所に表示されない場合は、これに関連付けられたサービスが削除されます。
オプション動作を設定します。オプションが何も指定されていない場合、set は現在有効になっているオプションを表示します。
詳細表示モードを有効にします。
詳細表示モードを無効にします。
引数がサービスプロファイルまたはマニフェストの場合は、構成を SMF リポジトリの管理レイヤーに適用します。必要に応じて、サービス、インスタンス、プロパティーグループ、およびプロパティーが作成されます。
あるプロパティーまたはプロパティーグループのタイプ属性を指定しなかった場合、既存のタイプ設定やサービステンプレートからそのタイプを判定する試みが行われます。タイプの決定に失敗すると警告が発せられ、サービスやインスタンスに不整合なデータが導入されないようにそのサービスがスキップされます。存在しないサービスやインスタンスは無視されます。
プロファイル内で制限が緩和された要素定義を使用するには、DOCTYPE エントリに次の定義を追加する必要があります。
<!ENTITY % profile "INCLUDE"> <!ENTITY % manifest "IGNORE">
プロファイルによって変更されたサービスやインスタンスは更新されます。-n を指定した場合、プロファイルは処理されますが、変更は SMF リポジトリに適用されません。構文エラーが見つかると必ず標準エラー出力に報告され、終了コード 1 が返されます。サービスプロファイルについては、smf(5) を参照してください。このコマンドでは、サービスやインスタンスのプロパティーを変更する特権が必要です。プロパティーを変更するために必要な特権については、smf_security(5) を参照してください。
マニフェスト内およびリポジトリ内のテンプレートデータに基づいてマニフェストまたはプロファイル内のサービスやインスタンスが検証され、テンプレート違反が検出されると必ず警告が発行されます。テンプレートの説明については、smf_template(5) を参照してください。-V オプションを指定した場合、定義されているテンプレートに違反したマニフェストのインポートが失敗します。svccfg の対話型呼び出しでは、-V がデフォルトの動作になります。
apply の引数がディレクトリである場合、そのディレクトリツリーの下で見つかったすべてのプロファイルが前述のように適用されます。指定したファイルや、指定したディレクトリの下で見つかったいずれかのファイルがサービスプロファイルでなかった場合、このサブコマンドは失敗します。
システム上のローカルカスタマイズを表示するサービスプロファイルを出力します。
-l を指定すると、値をエクスポートするレイヤーの一覧を選択できます。-l オプションにはレイヤー名が必要であり、引数として manifest、system-profile、site-profile、admin、current、all を指定します。current と all は同義語であり、最上位レイヤー値を意味します。listprop サブコマンドでは整合性のために両方が提供されます。 複数のレイヤーを指定するには、コンマで区切るか、複数の -l オプションを使います。
-l が指定されていない場合、デフォルトは -l admin,site-profile です。
複数選択されたレイヤーでプロパティーが定義されている場合は、最上位レイヤーのみがプロファイルでエクスポートされます。
-a オプションを指定しないと、保護された情報 (read_authorization プロパティーの存在によって識別される。smf_security(5) を参照) を含むプロパティーグループがプロパティー値なしで抽出されます。-a オプションを指定すると、すべての値が抽出されます。これらの値を読み取るための特権が不十分である場合は、エラーが発生します。
svccfg export の実行は以下と同等です。
svccfg extract -l current [-a] service_FMRI [>file]
システムで管理されたファイルシステムの場所 (/lib/svc/manifest および /var/svc/manifest のサブディレクトリ) にあるファイルに svccfg import を配置すると、svcadm restart manifest-import が起動されます。
マニフェストをインポートするには、システムで管理された場所にマニフェストを配置し、svcadm restart manifest-import を起動する方法をお勧めします。
その他の場所にあるファイルに svccfg import を配置すると、プロパティーが管理カスタマイズとして管理レイヤーにインポートされます。 以下の処理と同じ結果になります。
svccfg apply [file | directory]
file がサービスマニフェストまたはプロファイルであると判定された場合は、file で指定されているサービスおよびインスタンスの FMRI が出力されます。各サービスについて、そのインスタンスの FMRI に続いてサービスの FMRI が表示されます。
validate サブコマンドで処理できるのは、マニフェストファイル、インスタンス FMRI、現在のインスタンスエンティティー選択、現在のスナップショットエンティティー選択のいずれかです。引数が指定された場合、svccfg はその指定されたファイルが存在するかどうかをチェックします。ファイルが存在する場合は、ファイルが検証されます。指定された名前のファイルが存在しない場合、その引数は FMRI パターンとして処理されます。ファイル名と FMRI との間で競合が発生する場合には、svc: および file: 接頭辞を使用して引数の解釈方法を svccfg に知らせます。
ユーザーがファイルを指定した場合、そのファイルは import -V と同様の方法で処理されますが、リポジトリの変更は一切行われません。エラーが検出された場合、svccfg はエラーを表示し、ゼロ以外の終了ステータスで終了します。
インスタンス fmri、インスタンスエンティティー選択、スナップショットエンティティー選択のいずれかの場合、指定された合成形式のインスタンス (smf(5) の「プロパティーおよびプロパティーグループ」を参照) が、リポジトリ内のテンプレートデータに基づいて検証されます。インスタンス FMRI とインスタンスエンティティー選択の場合、「実行中の」スナップショットが検証に使用されます。テンプレート違反が検出されると必ず警告が発行されます。テンプレートの説明については、smf_template(5) を参照してください。
サービスまたはインスタンスがマニフェストまたはプロファイル内にある場合、そのサービスまたはインスタンスは非表示になります。smf(5) を参照してください。
「エンティティー」とは、スコープ、サービス、またはサービスインスタンスを指します。
現在の選択内容の子として、指定された名前で新しいエンティティーが作成されます。エンティティーを作成するために必要な特権については、smf_security(5) を参照してください。
name で指定されている現在の選択内容の子、または fmri で指定されているエンティティーが削除されます。-f フラグを指定しない限り、「online」状態または「degraded」状態のサービスインスタンスを削除しようとすると失敗します。サービスまたはサービスインスタンスが「framework」タイプの「dependents」プロパティーグループを持っている場合は、その中の「astring」タイプまたは「fmri」タイプの各プロパティーが調べられ、そのプロパティーがサービスまたはサービスインスタンスの名前を指定する 1 つの値を持っているときは、指定されたサービスまたはサービスインスタンスの、プロパティーと同じ名前を持つ dependency プロパティーグループが削除されます。サービス構成を削除するために必要な特権については、smf_security(5) を参照してください。
現在の選択内容の子エンティティーのうち、 glob パターン pattern に一致する名前を持つものが表示されます (fnmatch(5) を参照)。 プロパティーを持つエンティティー、すなわちサービスおよびサービスインスタンスには、「:properties」も一覧表示されます。
引数で現在の選択内容の子が指定されている場合は、それが現在の選択内容になります。それ以外の場合、引数は FMRI であると解釈され、引数で指定されているエンティティーが現在の選択内容になります。
現在の選択内容の親が現在の選択内容になります。
指定された名前 name と type で、プロパティーグループを現在の選択内容に追加します。flags は、プロパティーグループの作成に使用するフラグを指定する文字列です。「P」は SCF_PG_FLAG_NONPERSISTENT を表します (scf_service_add_pg(3SCF) を参照)。プロパティーグループを作成するために必要な特権については、smf_security(5) を参照してください。
指定された値をプロパティーに追加します。type が指定されている場合で、プロパティーが存在しているときは、そのプロパティーのタイプが type と一致しないと、このサブコマンドは失敗します。値は二重引用符で囲まれる場合があります。二重引用符やバックスラッシュを含んでいる文字列値は、二重引用符で囲む必要があります。また、文字列値に含まれている二重引用符とバックスラッシュは、バックスラッシュでエスケープする必要があります。存在していないプロパティーは作成されますが、その場合は type 指定子が指定されている必要があります。使用可能なプロパティータイプのリストについては、scf_value_create(3SCF) を参照してください。プロパティーを変更するために必要な特権については、smf_security(5) を参照してください。新しい値は、プロパティーに関連付けられたプロパティー値のリストの末尾に追加されます。
現在選択されている管理カスタマイズを削除します。引数が指定されている場合、それは glob パターンと見なされ、引数に一致する名前を持つプロパティーグループおよびプロパティーだけが削除されます。
-M が指定されている場合は、「マスクされた」エンティティーのみが削除されます。
delcust で削除されるカスタマイズを確認するには、listcust に同じオプションを付けて使用します。delcust を使うとすべての管理カスタマイズが削除される可能性があるため、常に listcust を最初に実行して、意図どおりのものを削除しようとしていることを確認します。
現在の選択内容のプロパティーグループ name を削除します。プロパティーグループを削除するために必要な特権については、smf_security(5) を参照してください。
プロパティーグループがマニフェストまたはプロファイル内にある場合、そのプロパティーグループは非表示になります。smf(5) を参照してください。
現在の選択内容のプロパティーグループまたはプロパティーのうち、name で指定されているものを削除します。プロパティーを削除するために必要な特権については、smf_security(5) を参照してください。
指定されたプロパティー値のうち、globパターンに一致するものをすべて削除します。一致する値がなくても、成功します。プロパティーを変更するために必要な特権については、smf_security(5) を参照してください。
現在の設定、使用可能な設定のいずれかについて説明します。
describe を引数なしで呼び出した場合、現在選択されているエンティティーおよび現在設定されているすべてのプロパティーグループやプロパティーの基本的な説明 (使用可能な場合) が表示されます。プロパティーグループや特定のプロパティーのクエリーを行うには、プロパティーグループ名か、プロパティーグループ名とプロパティー名をスラッシュ (/) で区切ったものを、引数として指定します。
-v オプションを指定すると、現在の設定、制約、使用可能なその他の設定オプションの説明など、使用可能なすべての情報が提供されます。
-t オプションを指定した場合は、選択内容のテンプレートデータのみが表示され (smf_template(5) を参照)、プロパティーグループやプロパティーの現在の設定は表示されません。
現在の選択内容のプロパティーグループおよびプロパティーを再生成するためのコマンドのコメントが一時ファイルに格納され、それを編集するために EDITOR 環境変数で指定されているプログラムが呼び出されます。完了すると、一時ファイル内のコマンドが実行されます。デフォルトのエディタは vi(1) です。プロパティーを作成、変更、または削除するために必要な特権については、smf_security(5) を参照してください。
現在の選択内容のプロパティーグループの名前、タイプ、およびフラグを表示します。引数が指定されている場合、それは glob パターンと見なされ、引数に一致する名前を持つプロパティーグループだけが一覧表示されます。
対話モードでは、プロパティーグループの基本的な説明も提供されます。
現在の選択内容のプロパティーグループとプロパティーを一覧表示します。プロパティーグループの場合は、名前、タイプ、およびフラグが一覧表示されます。プロパティーの場合は、名前 (プロパティーグループ名とスラッシュ (/) が前に付加される)、タイプ、および値が一覧表示されます。使用可能なプロパティータイプのリストについては、scf_value_create(3SCF) を参照してください。引数が指定されている場合、それは glob パターンと見なされ、引数に一致する名前を持つプロパティーグループおよびプロパティーだけが一覧表示されます。
-l オプションを指定すると、値の定義元のレイヤーが出力されます。-l オプションにはレイヤーが必要であり、引数として manifest、system-profile、site-profile、admin、current、all を指定します。current は、-l を付けない listprop と同じプロパティー値を、値が定義されたレイヤーとともに出力します。
-f と -o オプションを同時に指定することはできません。-f は、プロパティーが定義されたファイルが存在する場合にそのファイルを出力します。-o ではフィールドの選択が可能です。 選択可能なフィールドは次のとおりです。
プロパティー名
プロパティーグループ名
インスタンス名
サービス名
レイヤー
プロパティータイプ
プロパティー値
ソースファイル
プロパティーグループまたはプロパティーが現在非表示であるかどうか
このプロパティーが最後に変更された時刻
サイトプロファイルおよび管理レイヤーのカスタマイズと、現在選択されている非表示のエンティティーを出力します。引数が指定されている場合、それは glob パターンと見なされ、引数に一致する名前を持つプロパティーグループおよびプロパティーだけが一覧表示されます。現在の選択がない場合は、すべてのサーバーのすべてのカスタマイズが一覧表示されます。
-M が指定されている場合は、非表示のエンティティーのみが出力されます。
-L が指定されている場合は、すべてのローカルカスタマイズ (管理レイヤーとサイトプロファイルレイヤーの両方にあるものを含む) が表示されます。
method_name プロパティーグループのタイプが「method」の場合は、そのプロパティーグループの「environment」プロパティーを変更することにより、サービスまたはインスタンスのメソッドの環境変数を設定します。method_name が指定されていない場合で、-i オプションが使用されているときは、現在インスタンスが選択されていれば「method_context」プロパティーグループが使用されます。-s オプションが使用されている場合で、現在サービスが選択されているときは、その「method_context」プロパティーグループが使用されます。-s オプションが使用されている場合で、現在インスタンスが選択されているときは、その親の「method_context」プロパティーグループが使用されます。-i オプションと -s オプションのどちらも使用されていない場合は、現在選択されているエンティティー内で「start」プロパティーグループが検索されます。また、現在インスタンスが選択されている場合は、その親も検索されます。「inetd_start」プロパティーグループが見つからない場合は、同様の方法で検索されます。
プロパティーが見つかると、「envvar=」で始まる値がすべて削除され、値「envvar=value」が追加されます。プロパティーを変更するために必要な特権については、smf_security(5) を参照してください。
現在の選択内容の pg プロパティーグループの name プロパティーを、タイプ type の指定された値に設定します。使用可能なプロパティータイプのリストについては、scf_value_create(3SCF) を参照してください。プロパティーがすでに存在している場合は、そのプロパティーに既存の type が type と一致しないと、このサブコマンドは失敗します。値は二重引用符で囲まれる場合があります。二重引用符やバックスラッシュを含んでいる文字列値は、二重引用符で囲む必要があります。また、文字列値に含まれている二重引用符とバックスラッシュは、バックスラッシュでエスケープする必要があります。name で指定されたプロパティーが存在しない場合は、type が指定されていればプロパティーが作成されます。プロパティーを作成または変更するために必要な特権については、smf_security(5) を参照してください。複数の値は、指定された順番に格納されます。
method_name プロパティーグループのタイプが「method」の場合は、そのプロパティーグループの「environment」プロパティーを変更することにより、サービスまたはインスタンスのメソッドの環境変数を削除します。method_name が指定されていない場合で、-i オプションが使用されているときは、現在インスタンスが選択されていれば「method_context」プロパティーグループが使用されます。-s オプションが使用されている場合で、現在サービスが選択されているときは、その「method_context」プロパティーグループが使用されます。-s オプションが使用されている場合で、現在インスタンスが選択されているときは、その親の「method_context」プロパティーグループが使用されます。-i オプションと -s オプションのどちらも使用されていない場合は、現在選択されているエンティティー内で「start」プロパティーグループが検索されます。また、現在インスタンスが選択されている場合は、その親も検索されます。「inetd_start」プロパティーグループが見つからない場合は、同様の方法で検索されます。
プロパティーが見つかると、「envvar=」で始まる値がすべて削除されます。プロパティーを変更するために必要な特権については、smf_security(5) を参照してください。
ソフトウェアイベントや障害管理問題ライフサイクルイベントの通知パラメータを、SMF リポジトリに設定します。
SMF 状態遷移に対するシステム全体の通知パラメータを設定するために使用されます。smf(5) を参照してください。これらの通知パラメータは、svccfg の現在の選択内容にかかわらず svc:/system/svc/global:default 内に設定されます。このサブコマンドは、変更対象のインスタンスをすべて更新します。
FMA イベントのクラスまたは別名のコンマ区切りリスト。smf(5) の「通知パラメータ」を参照してください。
SMF 状態遷移のコンマ区切りリスト。smf(5) の「通知パラメータ」を参照してください。
実装されている各通知メカニズムの URI 形式。SMTP の場合は次を使用します。
mailto:addr[?header1=value1[&header2=value2]]
または
mailto:{[active]|inactive}
SNMP トラップの場合は次を使用します。
snmp:{[active]|inactive}
smtp-notify(1M) で定義されているパラメータ msg_template は、mailto URI のヘッダー値として設定できます。例:
mailto:root@localhost?msg_template=<path to template file>
SNMP トラップは、/etc/net-snmp/snmp/snmpd.conf 内の trapsink 指令で定義されたホスト、または SNMP トラップ通知デーモンで指定されたホストに送られます。smtp-notify(1M) を参照してください。
通知パラメータは、指定された class または tset に固有のものであり、事前に存在していた通知パラメータは上書きされます。active/inactive 形式は以前の通知パラメータを上書きしません。この形式では、指定された class または tset に対する通知メカニズムのオン/オフが切り替わるだけです。通知パラメータを設定すると、それらのパラメータが暗黙的にアクティブに設定されます。
指定された class または tset の既存の通知パラメータを表示します。-g オプションを指定すると、svc:/system/svc/global:default の通知パラメータが表示されます。tset を省略すると、all が指定されたものとみなされます。
指定された class または tset の既存の通知パラメータを削除します。-g オプションを指定すると、svc:/system/svc/global:default の通知パラメータが削除されます。
現在選択されているインスタンスで使用可能なスナップショットを表示します。
現在選択されているインスタンスとそのサービスの管理カスタマイズを、指定されたスナップショットに記録されているプロパティーに戻します。引数が何も指定されていない場合は、現在選択されているスナップショットを使用し、成功時にそれを選択解除します。変更したプロパティー値は、svcadm(1M) の refresh サブコマンドを使用してアクティブにすることができます。プロパティーを変更するために必要な特権については、smf_security(5) を参照してください。
現在のスナップショットを、name で指定されたスナップショットに変更します。name が指定されていない場合は、現在選択されているスナップショットを選択解除します。スナップショットは読み取り専用です。
現在の構成に含まれる値を実行中のスナップショットに確定し、現在選択されているインスタンスがそれらの値を使用できるようにします。repository サブコマンドを使用せずにリポジトリが選択された場合、更新された構成を読み直すように、インスタンスのリスタータに指示します。
例 1 サービス記述のインポート
次の例では、コマンド行で指定した XML マニフェストに含まれる seismic サービスのサービス説明をインポートします。
# svccfg import /var/svc/manifest/site/seismic.xml
マニフェストは service_bundle(4) に指定されている形式に従う必要があります。
例 2 サービス説明のエクスポート
サービス説明をローカルシステムにエクスポートするには、次のように指定します。
# svccfg export dumpadm >/tmp/dump.xml
例 3 サービスインスタンスの削除
サービスインスタンスを削除するには、次のように指定します。
# svccfg delete network/inetd-upgrade:default
例 4 代替リポジトリに含まれるプロパティーの検査
代替リポジトリをロードしたあとでサービスのプロパティーの状態を調べるには、次に示す一連のコマンドを使用します。このようなコマンドを使用して、たとえば、特定のリポジトリのバックアップ内でサービスが有効になっていたかどうかを調べることができます。
# svccfg svc:> repository /etc/svc/repository-boot svc:> select telnet:default svc:/network/telnet:default> listprop general/enabled general/enabled boolean false svc:/network/telnet:default> exit
例 5 デバッグの有効化
start メソッドの LD_PRELOAD を変更し、デバッグ機能が有効になっている libumem(3LIB) を使用できるようにするには、次のように指定します。
$ svccfg -s system/service setenv LD_PRELOAD libumem.so $ svccfg -s system/service setenv UMEM_DEBUG default
例 6 describe サブコマンドの使用
次のコマンドは、describe サブコマンドの使用法を示しています。
# svccfg -s console-login describe ttymon ttymon application ttymon/device astring /dev/console terminal device to be used for the console login prompt ttymon/label astring console appropriate entry from /etc/ttydefs ...
例 7 通知設定の構成
次のコマンドは、SMF サービス状態遷移イベントの通知パラメータを構成します。
# svccfg setnotify -g from-online,to-maintenance \ mailto:admin@somehost.com
例 8 SNMP 通知の有効化
次のコマンドは、障害管理イベントの SNMP 通知を有効にします。
# svccfg setnotify problem-diagnosed,problem-updated \ mailto:admin@somehost.com snmp:
例 9 通知設定の一覧表示
次のコマンドは、障害管理イベントの通知設定を一覧表示します。
# svccfg listnotify problem-diagnosed,problem-updated Event: problem-diagnosed Notification Type: smtp active: true to: admin@somehost.com Notification Type: snmp active: true Event: problem-updated Notification Type: smtp active: true to: admin@somehost.com Notification Type: snmp active: true
editprop サブコマンドが使用されたときに実行するコマンド。デフォルトのエディタは vi(1) です。
次の終了値が返されます。
正常終了。
1 つまたは複数のサブコマンドが失敗しました。エラーメッセージが標準エラーストリームに書き込まれます。
無効なコマンド行オプションが指定されました。
属性についての詳細は、attributes(5) を参照してください。
|
対話型出力は「不確実」です。呼び出しおよび非対話型出力は「確実」です。
svcprop(1), svcs(1), smtp-notify(1M), svcadm(1M), svc.configd(1M), libscf(3LIB), libumem(3LIB), scf_service_add_pg(3SCF), scf_value_create(3SCF), contract(4), service_bundle(4), attributes(5), fnmatch(5), smf(5), smf_method(5), smf_security(5), smf_template(5)