snmpwalkの使い方は?snmpwalkコマンドの使用方法を徹底解説
snmpwalkとは、SNMPマネージャ用コマンドの一つです。SNMPプロトコルを実装したアプリケーション群である「Net-SNMP」の中に含まれています。
snmpwalkコマンドでOID(Object ID)を指定すると、配下に含まれるすべてのOIDと、その値を表示します。
類似したコマンドには「snmpget」があり、こちらはOIDを指定すると、指定したOIDと該当する値を単体で表示します。
snmpwalkのコマンド実行例
SNMP v1の場合
:SNMPのコミュニティ名を指定します。
< ホスト名:ポート >:データを取得したいSNMPエージェントがある機器のホスト名またはIPアドレスと、SNMPのポート番号を入力します。 ポート番号はデフォルトでは161が使用されます。
< OID >:SNMPのObjectIDを指定します。
SNMP v2の場合
:SNMPのコミュニティ名を指定します。
< ホスト名:ポート >:データを取得したいSNMPエージェントがある機器のホスト名またはIPアドレスと、SNMPのポート番号を入力します。ポート番号はデフォルトでは161が使用されます。
< OID >:SNMPのObjectIDを指定します。
SNMP v3の場合
-l :noAuthNoPriv、authNoPriv、authPrivのいずれか
-a オプションの使用方法について オプションの使用方法について :SHA(推奨)またはMD5を指定します。
-A :SNMPv3における認証パスワードを指定します。
< ホスト名:ポート >:データを取得したいSNMPエージェントがある機器のホスト名またはIPアドレスと、SNMPのポート番号を入力します。ポート番号はデフォルトでは161が使用されます。
< OID >:SNMPのObjectIDを指定します。
以下はセキュリティレベルがauthPrivである場合に指定します。
-x :暗号化プロトコル。AES(推奨)またはDESを指定します。
-X :暗号化パスワード
-u :ユーザ名を指定します。
snmpwalkするより簡単!
OpManagerで実践するSNMP監視
snmpwalkコマンドでその他に利用可能なオプション
-V, --version:Net-SNMPのバージョンを表示します
-r :試行回数を指定します。 オプションの使用方法について
-t :リクエストのタイムアウト時間を秒で指定します。
-d:通信されたパケットを16進数で出力してデバッグに使用します。
-D :指定したSNMPの機能のデバッグを行います。
io - 入出力アクティビティと生データをレポートとして表示します。
dsp - 高レベルなSNMPエンジンの動作をレポートとして表示します。
msgproc - メッセージ処理の動作をレポートとして表示します。
secmod オプションの使用方法について - セキュリティの操作をレポートとして表示します。
mibbuild - MIBファイルの読み込みと処理をレポートとして表示します。
mibview - MIBブラウザの初期化と操作をレポートとして表示します(マネージャロールMIBを利用)
mibinstrum - MIBインストルメンテーション操作をレポートとして表示します(エージェントロールMIBを使用)
acl - MIBアクセス制御をレポートとして表示します。
proxy - 組み込みのSNMPプロキシ操作をレポートとして表示します。
app - SNMP標準アプリケーションの操作をレポートとして表示します。
all - 上記すべてをレポートとして表示します。
以下のオプションはSNMPv3の場合に指定可能です。
-e :権限のあるセキュリティエンジンIDを16進数の文字列で設定します。通常の場合は自動的に検出されます。
-E :コンテキストエンジンIDを16進数の文字列で設定します。指定しない場合は、権限のあるエンジンIDが自動で指定されます。
-n オプションの使用方法について :コンテキスト名を指定します。
-Z < BOOTS,TIME >:認証に使用するエンジンブートカウンタとそのタイムライン値を設定します。通常の場合これらの値は自動的に検出されます。
オプションの使用方法について
このセクションでは、コマンドラインオプションを使用して、 mysql や mysqldump などのクライアントに対して MySQL サーバーへの接続を確立する方法を指定する方法について説明します。 URI のような接続文字列またはキーと値のペアを使用して MySQL Shell などのクライアントに対して接続を確立する方法の詳細は、セクション4.2.5「URI 類似文字列またはキーと値のペアを使用したサーバーへの接続」 を参照してください。 接続できない場合の追加情報は、セクション6.2.21「MySQL への接続の問題のトラブルシューティング」 を参照してください。
クライアントプログラムが MySQL サーバーに接続するには、サーバーが実行されているホストの名前や MySQL アカウントのユーザー名とパスワードなど、適切な接続パラメータを使用する必要があります。 各接続パラメータにはデフォルト値がありますが、コマンド行またはオプションファイルで指定されたプログラムオプションを使用して、必要に応じてデフォルト値をオーバーライドできます。
次の例は mysql クライアントプログラムを使用しますが、原則は mysqldump 、 mysqladmin 、または mysqlshow など、ほかのクライアントにも適用されます。
このコマンドは、明示的な接続パラメータを指定せずに mysql を起動します:
デフォルトのホスト名は localhost です。 Unix では、後述するようにこれには特別な意味があります。
デフォルトのユーザー名は、Windows では ODBC オプションの使用方法について オプションの使用方法について オプションの使用方法について 、Unix では Unix のログイン名です。
--password も -p も指定されていないため、パスワードは送信されません。
mysql では、最初のオプションではない引数はデフォルトデータベースの名前とみなされます。 このような引数はないため、 mysql はデフォルトのデータベースを選択しません。
ホスト名、ユーザー名およびパスワードを明示的に指定するには、コマンドラインで適切なオプションを指定します。 デフォルトのデータベースを選択するには、database-name 引数を追加します。 例:
--password または -p オプションを使用してパスワード値を指定する場合は、 --password= または -p とそれに続くパスワードの間に スペースなし が存在する必要があります。
--password または -p を使用するが、パスワード値を指定しない場合、クライアントプログラムはパスワードの入力を求めます。 パスワードは入力時に表示されません。 これは、システム上の他のユーザーが ps などのコマンドを実行してパスワード行を表示できるようにするコマンド行でパスワードを指定するよりも安全です。 セクション6.1.2.1「パスワードセキュリティーのためのエンドユーザーガイドライン」を参照してください。
パスワードがないこと、およびクライアントプログラムがパスワードを要求しないことを明示的に指定するには、 --skip-password オプションを使用します。
前述したように、コマンドラインにパスワード値を含めるとセキュリティ上のリスクがあります。 このリスクを回避するには、次のパスワード値なしで --password または -p オプションを指定します:
パスワード値を指定せずに --password または -p オプションを指定すると、クライアントプログラムはプロンプトを出力し、パスワードの入力を待機します。 (これらの例では、 mydb はその前のパスワードオプションとスペースで区切られているため、パスワードとは解釈 されません 。)
システムによっては、MySQL がパスワードを要求するために使用するライブラリルーチンが、自動的にパスワードを 8 文字に制限します。 この制限は、MySQL ではなくシステムライブラリのプロパティです。 内部的には、MySQL にはパスワードの長さに関する制限はありません。 オプションの使用方法について 影響を受けるシステムの制限を回避するには、オプションファイルでパスワードを指定します (セクション4.2.2.2「オプションファイルの使用」 を参照)。 別の回避策として、MySQL パスワードを 8 文字以下の値に変更しますが、パスワードが短いほど安全性が低くなる傾向があります。
ホストが指定されていないか、 localhost である場合、ローカルホストへの接続が発生します:
Windows では、共有メモリー接続をサポートするために shared_memory システム変数を有効にしてサーバーを起動した場合、クライアントは共有メモリーを使用して接続します。
Unix では、MySQL プログラムは、他のネットワークベースのプログラムと比較して予想とは異なる方法で、ホスト名 localhost を特別に処理: クライアントは Unix ソケットファイルを使用して接続します。 ソケット名の指定には、 --socket オプションまたは MYSQL_UNIX_PORT 環境変数を使用できます。
Windows では、 host が . (ピリオド) であるか、TCP/IP が有効でなく、 --socket が指定されていないか、ホストが空の場合、 named_pipe システム変数を有効にしてサーバーが起動され、名前付きパイプ接続がサポートされていれば、クライアントは名前付きパイプを使用して接続します。 名前付きパイプ接続がサポートされていない場合、または接続を行うユーザーが named_pipe_full_access_group システム変数で指定された Windows グループのメンバーでない場合は、エラーが発生します。
それ以外の場合、接続では TCP/IP が使用されます。
--protocol オプションを使用すると、ほかのオプションが通常は別のプロトコルを使用する場合でも、特定のトランスポートプロトコルを使用できます。 つまり、 --protocol はトランスポートプロトコルを明示的に指定し、 localhost の場合でも前述のルールをオーバーライドします。
選択したトランスポートプロトコルに関連する接続オプションのみが使用または選択されます。 その他の接続オプションは無視されます。 たとえば、Unix 上の --host=localhost では、TCP/IP のポート番号を指定するために --port または -P オプションが指定されている場合でも、クライアントは Unix ソケットファイルを使用してローカルサーバーへの接続を試みます。
クライアントがローカルサーバーに TCP/IP 接続するようにするには、 --host または -h を使用して、 127.0.0.1 ( localhost ではなく) のホスト名の値、またはローカルサーバーの IP アドレスまたは名前を指定します。 localhost の場合でも、 --protocol=TCP オプションを使用してトランスポートプロトコルを明示的に指定することもできます。 例:
サーバーが IPv6 接続を受け入れるように構成されている場合、クライアントは --host=::1 を使用して オプションの使用方法について IPv6 経由でローカルサーバーに接続できます。 セクション5.1.13「IPv6 サポート」を参照してください。
Windows で、MySQL クライアントで名前付きパイプ接続を強制的に使用するには、 --pipe または --protocol=PIPE オプションを指定するか、ホスト名として . (ピリオド) を指定します。 名前付きパイプ接続をサポートするために named_pipe システム変数を有効にしてサーバーを起動しなかった場合、または接続を行うユーザーが named_pipe_full_access_group システム変数で指定された Windows グループのメンバーでない場合は、エラーが発生します。 デフォルトのパイプ名を使用しない場合には --socket オプションを使用してパイプ名を指定します。
リモートサーバーへの接続では、TCP/IP が使用されます。 次のコマンドは、デフォルトのポート番号 (3306) を使用して remote.example.com で動作するサーバーに接続します。
ポート番号を明示的に指定するには、 --port オプションまたは -P オプションを使用します。
ローカルサーバーへの接続にもポート番号を指定できます。 ただし、前述のように、Unix 上の localhost への接続ではデフォルトでソケットファイルが使用されるため、前述のように TCP/IP 接続を強制しないかぎり、ポート番号を指定するオプションは無視されます。
Robocopyの基本動作とコマンドオプション解説
Version 1.3.27 をリリースしました! (2021/1/1)
RobocopyをGUIから実行できるようにするツールです。コマンドプロンプトを表示することなく、GUI画面からほぼマウス操作だけで実行までできます。 Robocopyがバックグラウンドでそのまま実行されますので設定に迷うことはありません。
・ 複数のコピー項目の作成と管理。
・ スクリプトファイル(バッチファイル)出力が可能。スケジューラによるバックグラウンド処理にも使えます。
・ Robocopyによるコピー実行前に、実行プレビュー(/L)、パラメータのチェック(/QUIT)オプションの使用方法について が可能。
・ Robocopyのパラメータ設定の簡易チェック、Robocopy実行前の簡易チェックを行います。
・ Robocopy実行前後で実行するスクリプトを定義可能。
・ Robocopy実行途中での中断、実行ログの履歴管理と保存が可能。
知っておくべきRobocopyの基本動作
Robocopyのデフォルト動作の主なポイント
- デフォルトでは、コピー元フォルダ直下のファイル(フォルダは含みません)をコピーします。サブフォルダ配下もコピーする場合、/S, /E, /MIRなどを指定する必要があります。
- 既にコピー先にファイルが存在する場合、コピー元ファイルとコピー先ファイルを比較し、 タイムスタンプとファイルサイズが同じであればコピーは行わない。
- コピー先のほうがタイムスタンプが新しくても上書きされる。
- ファイル属性については比較しないので、ファイル属性が更新されていてもコピーされない。
- ファイルコピー時のクラスの分類と、コピー処理をまとめると、以下の表ようになります。(セキュリティ情報をコピーする場合の動作については、こちらの記事をご覧ください)
クラス | クラス条件 | コピー動作 | |||||
---|---|---|---|---|---|---|---|
コピー元 | コピー先 | 更新時刻 | サイズ | 属性 | デフォルト コピー動作 | 関連 オプション | |
Lonely | ある | ない | - | - | - | する | /XLで除外 |
Tweaked | ある | ある | 一致 | 一致 | 不一致 | しない | /ITで含める |
Same | ある | ある | 一致 | 一致 | 一致 | しない | /ISで含める |
Changed | ある | ある | オプションの使用方法について一致 | 不一致 | - | する | /XCで除外 |
Newer | ある | ある | 元>先 *2 | - | - | する | /XNで除外 |
Older | ある | ある | 元<先 *2 | - | - | する | /XOで除外 |
Extra | ない | ある | - | オプションの使用方法について- | - | - *3 | /XXで除外 /PURGE, /MIR |
Mismatched | ある*1 | ある*1 | - | - | - | - | - |
*1: コピー元がファイルでコピー先がフォルダ、またはその逆
*2: 「元>先」はコピー元ファイルの方が新しい、「元<先」はコピー先ファイルの方が新しい
*3: /PURGEまたは/MIR指定時コピー先を削除
- ファイルのコピーは、ファイルのデータ(代替データストリームも含む)、タイムスタンプ、ファイル属性がコピーされる。(アクセス権情報(NTFS ACL)、所有者情報、監査情報はコピーされません。)
- フォルダのコピーは、フォルダの属性、および、代替データストリームがコピーされる。フォルダのタイムスタンプはコピー元を引き継がない。(空のフォルダはコピー元のタイムスタンプとなるが、それ以外のフォルダはコピー実行時のタイムスタンプになる。)
- シンボリックリンクやジャンクションポイントは、通常のフォルダとして扱われ、配下の対象ファイル・フォルダをコピーする。(予想外のデータ量になる可能性がある)
- コピーに失敗した場合、30秒間隔で、最大百万回リトライを行う。
全般ルール
- ファイル名、パス名に空白文字を含む場合""オプションの使用方法について で囲む必要があります。
Robocopyコマンド説明
Syntax
パラメータ
- 通常のパス形式(絶対パス、相対パス。例 N:\folder\subfolder)、または、UNCパス形式(例 \\server\share\path)で指定します。
- ファイル名、パス名に空白文字を含む場合""で囲む必要があります。
- 通常のパス形式(絶対パス、相対パス。例 N:\folder\subfolder)、または、UNCパス形式(例 \\server\share\path)で指定します。
- ファイル名、パス名に空白文字を含む場合""で囲む必要があります。
- ワイルドカード(* と ? のみ)を使うことができます。
- 省略時の規定値は *.* (すべてのファイルを対象)とみなされます。
- ファイル名に空白文字を含む場合""で囲む必要があります。
- 複数のファイル名を列挙して指定できます。空白で区切ります。
- パス(\を含む文字列)は指定できません。
- あくまでもファイル名を指定するためのものであり、フォルダ名は制限を受けない。
Robocopyのオプション
コピーオプション
- ファイル、フォルダのアクセス権限情報(ACL)を上書きします。
- コピーフラグ:
D=データ (代替データストリームを含む)
A=属性
T=タイムスタンプ
X=代替データストリームをコピーしない
S=セキュリティ情報=アクセス権情報(NTFS ACL)
O=所有者情報
U=監査情報
- /SECFIXを使用する場合は、/COPYALL /COPY:O /COPY:S /COPY:U /SECのいずれかを設定し、どの情報をコピーするかを指定する。
-
オプションの使用方法について
- /MIR は /E /PURGEと同等ですが、次の点のみ異なります。 コピー先にフォルダが存在する場合、/MIRはセキュリティ設定をコピーしますが、/E /PURGEはコピーしません。
- /SJを指定していないデフォルトの動作は、ジャンクション配下のファイルまたはフォルダを追跡しコピーします。
- /SJを指定した場合、ジャンクションは、ジャンクションとしてコピーされます。ジャンクション配下のファイルまたはフォルダはコピーされません。
- /SLを指定していないデフォルトの動作は、シンボリックリンクのリンク先のファイルまたはフォルダを追跡しコピーします。
- /SLを指定した場合、シンボリックリンクは、シンボリックリンクとしてコピーされます。リンク先のファイルまたはフォルダはコピーされません。
- コピーフラグ:
D= データ (代替データストリーム)
A= オプションの使用方法について 属性 (拡張ファイル属性)
T= タイムスタンプ
E=拡張属性
X=代替データストリームをコピーしない
ファイル選択オプション
- 複数のファイル名を列挙できます。空白で区切ります。
- ワイルドカードが使用できますが、* と ? のみが使用可能です。
- ファイル名だけでなくフルパス名(例 N:\folder\filename.txt)も指定可能ですが、相対パスでの指定はできないようです。
- ファイル名、パス名に空白文字を含む場合""オプションの使用方法について で囲む必要があります。
- 複数のフォルダ(ディレクトリ)名を列挙できます。空白で区切ります。
- ワイルドカードが使用できますが、* と ? のみが使用可能です。
- フォルダ名だけでなくフルパス名(例 N:\folder\subfolder)も指定可能ですが、相対パスでの指定はできないようです。
- ファイル名、パス名に空白文字を含む場合""で囲む必要があります。
- /XJを指定しないデフォルト動作は、ジャンクションポイント(ボリュームマウントポイント)とシンボリックリンクは通常のディレクトリとしてその配下の対象をコピーする。そのため、予想以上のデータ量になる可能性がある。
- /XJを指定することで。ジャンクションポイントとシンボリックリンク配下をスキップする。
再試行オプション
ログオプション
- ログファイルの保存先のフォルダは存在している必要があります。
- ファイル名、パス名に空白文字を含む場合""で囲む必要があります。
- ログファイルの保存先のフォルダは存在している必要があります。
- ファイル名、パス名に空白文字を含む場合""で囲む必要があります。
- ログファイルの保存先のフォルダは存在している必要があります。
- ファイル名、パス名に空白文字を含む場合""で囲む必要があります。
- このオプションはUNICODEを出力しないので使い物になりません(個人調べ)
ジョブオプション
/JOB:ジョブ名 | ジョブ名で指定されたジョブファイルからパラメーターを取得します。 |
/SAVE:ジョブ名 | ジョブ名で指定されたジョブファイルにパラメーターを保存します。 |
/QUIT | コマンドラインパラメータの解釈のみ行います。パラメータ表示後終了します。 |
Robocopyの戻り値
戻り値 | 説明 |
---|---|
0 | コピーは行われませんでした。処理は正常に終了ました。ミスマッチ(Mismatched)も見つかりませんでした。全てのファイルはコピー先に存在しています。 |
1 | ファイルのコピーが行われました。 |
2 | コピー先にのみ存在するファイルが見つかりました。コピーされたファイルはありませんでした。 |
3 | ファイルのコピーが行われました。コピー先にのみ存在するファイルが見つかりました。処理は正常に終了しました。 |
5 | ファイルのコピーが行われました。ミスマッチ( Mismatched )が見つかりました。処理は正常に終了しました。 |
6 | コピー先にのみ存在するファイルが見つかりました。ミスマッチ( Mismatched )が見つかりました。コピーされたファイルはありませんでした。処理は正常に終了しました。全てのファイルはコピー先に存在しています。 |
7 | ファイルのコピーが行われました。ミスマッチ( Mismatched )が見つかりました。コピー先にのみ存在するファイルが見つかりました。 |
8 | コピーできなかったファイルがあります。 |
8以上 | 何らかの異常が発生しました。 |
結果種別 (ビット値) | 説明 |
---|---|
0 | コピーする必要がないため、何も実施しなかった ログの「スキップ(Skipped)」としてカウント |
1 | ファイルのコピーが成功した (フォルダーのコピーは含まれません) ログの「コピー済み(Copied)」としてカウント |
2 | コピー先にのみ存在するファイル/フォルダが確認された ログの「Extras」としてカウント |
4 | 同じ名前で別の種類のファイルが存在した(Mismatched) ログの「不一致(Mismatch)」としてカウント |
8 | コピーに失敗した ログの「失敗(FAILED)」としてカウント |
16 | 致命的エラー。全く処理できなかったなど。 |
ファイル属性
/A+, /A-, /IA, /XA オプションの使用方法について オプションで指定するファイル属性は以下の通り。
属性名 | 意味 |
---|---|
R | 読み取りのみ属性 (Read only) |
A | アーカイブ属性 (Archive) | オプションの使用方法について
S | システム属性 (System) |
H | 隠し属性 (Hidden) |
C | 圧縮属性 (Compressed) |
N | インデックス抑止属性 (Not content indexed) |
E | 暗号化属性 (Encrypted) |
T | 一時ファイル属性 (Temporary) |
O | オフライン属性 (Offline) |
参考リンク
- robocopyドキュメント (Microsoftドキュメント)
- Windowsのrobocopyコマンドでコピーするファイルの種類を選択/変更する (@IT記事)
- Windowsのrobocopyコマンドでフォルダーをバックアップ/同期させる (@IT記事)
- Windowsのrobocopyコマンドでファイルコピー中断後に自動再開させる (@IT記事)
- Robocopy のエラー (戻り値) について (Microsoftドキュメント)
Related Articles
- Article: Robocopy オプションの使用方法について /COMPRESS を使ってNW経由のコピーを高速化する (2021/12/5)
- Article: SMB圧縮を利用してNW経由コピーを高速化する (2021/12/5)
- Article: Robocopy の MAXAGE MINAGE MAXLAD MINLADオプション (オプションの使用方法について 2021/8/29)
- Article: RoboSync 1.3.27 リリースしました (2021/1/1)
- Article: Robocopy フォルダツリーのみをコピーする方法 (2020/10/24) オプションの使用方法について
- Article: Robocopy コピー元に存在しないファイルをコピー先から削除する (2020/10/24)
- Article: RoboSync 1.3.12 リリースしました (2020/8/16)
- Article: 日本語環境でRobocopyを実行した時のクラス表記 (オプションの使用方法について 2020/7/5)
- Article: RoboSync環境変数を使ってスクリプト処理を制御する (2020/6/22)
- Article: Robocopy /CREATEオプションの目的と使い方 (2020/6/9)
- Article: Robocopyでセキュリティ情報を正しくコピーする方法と注意点 (2020/6/6)
- Article: Robocopy /MON /MOT を使ってフォルダ更新を監視する (2020/5/23)
- Article: Robocopy /MIRオプションの動作と注意点 (2020/5/21)
- Article: Robocopy /Zオプションの再起動可能モードとは (オプションの使用方法について 2020/4/18)
- Article: エクスプローラでファイル属性を表示させる方法 (2020/2/29)
- Article: エクスプローラで隠しファイル・システムファイルを表示する方法 (2020/2/29)
- Article: Robocopyでコピー先フォルダが非表示になる (2020/2/29)
- Article: オプションの使用方法について オプションの使用方法について スクリプト終了後にシャットダウンさせる方法 (2020/2/16)
- Article: Robocopyを英語表示にしてログ表示の桁ずれをなくす (2020/2/15)
- Article: Robocopyのログ出力の文字コードについて調べてみた (2020/2/15)
- Article: RoboSync 1.2.オプションの使用方法について オプションの使用方法について オプションの使用方法について 41 リリースしました (2020/2/15)
- Article: タスクスケジューラでコマンドプロンプト画面を表示しないでバッチファイルを実行する (2020/2/9)
- Article: RoboSync設定事例:個人PCのバックアップ設定例 (2020/2/1)
- Article: RoboSync TIPS: /Lオプションをつけて実行結果をプレビューする (2020/2/1)
- Article: RoboSync設定事例:フルバックアップ3世代 (2020/1/12)
- Article: RoboSync設定事例:増分バックアップ(直近20回,14日以内保存) (2020/1/12)
- Article: Robocopyコマンド: オプションの使用方法について /DCOPY:DATのすすめ (2020/1/7)
- Article: attribコマンドでフォルダ配下全ファイルの属性変更ができない (2020/1/5)
- Article: RoboSyncを使って差分・増分バックアップを設定してみる (2020/1/5)
- Article: バックアップスクリプトを自動で実行する (2020/1/5)
- Article: RoboSync 1.2.14 リリースしました (2020/1/5)
To:管理者 2021-04-04 10:00:52
ASKさんコメントありがとうございます。確かにドライブレターが変わるというのは危険ですね。
マウントあたりの処理についてあまり詳しくなく、問題解決できるコメントはできないのですが、
1つの対処方法としてはボリュームラベルで正しいボリュームを指定できているかをチェックすることはできるかもしれません。
このサイトで公開しているRoboSyncでは、処理を開始する前にボリュームラベルを照合することができるようになっています。
(ただし、スクリプト(バッチファイル)を生成する場合、ボリュームラベルの照合処理は行われないのでご注意ください。)
バッチファイルを作成されているようであれば、コピー開始前にボリュームラベルを照合するような判定処理を
入れるとリスクは回避できるのではないかと思います。
Submitted comments will be processed manually. So, please understand it will take about a day to publish your comment.
FCM メッセージについて
通知メッセージには、ユーザーに表示される事前定義キーが含まれます。一方、データ メッセージにはユーザー定義の Key-Value ペアだけが含まれます。通知メッセージには、オプションのデータ ペイロードを含めることができます。どちらのメッセージ タイプも最大ペイロードは 4 KB です。ただし、Firebase コンソールからメッセージを送信する場合は例外となり、1,024 文字の上限が適用されます。
Cloud Functions やアプリサーバーなどの信頼できる環境で、Admin SDK または FCM サーバー プロトコルを使用し、 notification キーを設定します。オプションのデータ ペイロードを指定できます。常に折りたたみ可能になります。
クライアント オプションの使用方法について アプリに代わって FCM で通知の表示を処理する場合は、通知メッセージを使用します。クライアント アプリでメッセージを処理する場合は、データ メッセージを使用します。
FCM は、オプションのデータ ペイロードを含む通知メッセージを送信できます。その場合は、FCM によって通知ペイロードの表示が処理され、クライアント アプリによってデータ ペイロードが処理されます。
通知メッセージ
テストやマーケティング、ユーザーの再エンゲージメントのために、Firebase コンソールを使用して通知メッセージを送信できます。 Firebase コンソールは、マーケティング メッセージの改善に役立つ、アナリティクスに基づいた A/B テストを提供します。
Admin SDK または FCM プロトコルを使用して通知メッセージをプログラムで送信するには、 notification キーを使って、通知メッセージのユーザー表示部分に対応する事前定義された Key-Value オプションの中から必要なものを設定します。例として、IM アプリで使用する JSON 形式の通知メッセージを以下に示します。ユーザーのデバイスに表示されるメッセージのタイトルは「Portugal vs. Denmark」、テキストは「great match!オプションの使用方法について オプションの使用方法について 」です。
データ メッセージ
データ ペイロードをクライアント アプリに送信するには、適切なキーにカスタム Key-Value ペアを設定します。
たとえば、以下は上記と同じ IM アプリ内の JSON 形式のメッセージですが、情報は共通の data キー内にカプセル化されており、クライアント アプリがそのコンテンツを解釈する必要があります。
上記の例では、トップレベル、つまり共通の data フィールドが使用されています。このフィールドは、メッセージを受信するすべてのプラットフォーム上でクライアントによって解釈されます。クライアント オプションの使用方法について アプリは、それぞれのプラットフォームのコールバック関数でデータ ペイロードを受信します。
データ メッセージの暗号化
Android トランスポート レイヤ(FCM アーキテクチャを参照)は、ポイントツーポイント暗号化を使用します。必要に応じて、エンドツーエンドの暗号化をデータ メッセージに追加できます。FCM はエンドツーエンドのソリューションを提供していません。ただし、Capillary や DTLS などの外部ソリューションを利用できます。
オプションのデータ ペイロードを含む通知メッセージ
プログラムと Firebase コンソールのどちらからでも、カスタムの Key-Value ペアのオプション ペイロードを含む通知メッセージを送信できます。Notifications Composer では、[詳細オプション] の [カスタムデータ] フィールドを使用します。
- バックグラウンドにある場合、アプリは、通知トレイで通知ペイロードを受け取り、ユーザーが通知をタップしたときにのみデータ ペイロードを処理します。
- フォアグラウンドにある場合、アプリは、どちらのペイロードも取得できる状態でメッセージ オブジェクトを受け取ります。
以下に notification キーと data キーの両方を含む JSON 形式のメッセージを示します。
プラットフォーム間でのメッセージのカスタマイズ
Firebase Admin SDK と FCM v1 HTTP プロトコルは、いずれも message オブジェクト内のすべてのフィールドをメッセージ リクエストで設定できるようにします。以下に例を示します。
- メッセージを受け取るすべてのアプリ インスタンスによって解釈される共通のフィールド セット。
- AndroidConfig や WebpushConfig など、プラットフォーム固有のフィールド セット。指定されたプラットフォームで実行されているアプリ インスタンスによってのみ解釈されます。
共通フィールドを使用する場合
- Apple、Android、ウェブのすべてのプラットフォームのアプリ インスタンスをターゲットにする
- トピックにメッセージを送信する
プラットフォーム固有のフィールドを使用する場合
- 特定のプラットフォームにのみフィールドを送信する
- 共通フィールドに加えてプラットフォーム固有のフィールドを送信する
特定のプラットフォームだけに値を送信する場合は、共通フィールドを使用せずにプラットフォーム固有のフィールドを使用してください。たとえば、Android を除いて Apple プラットフォームとウェブのみに通知を送信するには、2 つの異なるフィールド セット(Apple 用とウェブ用に 1 つずつ)を使用する必要があります。
特定の配信オプションを持つメッセージを送信する場合は、プラットフォーム固有のフィールドを使用してそれらのオプションを設定します。必要に応じてプラットフォームごとに異なる値を指定できます。ただし、すべてのプラットフォームで基本的に同じ値を設定する場合でも、プラットフォーム固有のフィールドを使用する必要があります。これは、プラットフォームごとに値の解釈が多少異なる可能性があるためです。たとえば、Android では秒単位で設定される有効期限が、Apple では有効期日 として設定されます。
例: プラットフォーム固有の配信オプションを使用した通知メッセージ
次の v1 send リクエストは、すべてのプラットフォームに共通の通知タイトルとコンテンツを送信しますが、プラットフォーム固有のオーバーライドも送信します。リクエストの詳細は次のとおりです。
- Android およびウェブ プラットフォームに対しては長い有効期間を設定し、APNs(Apple プラットフォーム)メッセージには低い優先順位を設定します。
- Android および Apple でユーザーが通知をタップしたときの結果を定義するために、それぞれ適切なキー( click_action および category )を設定します。
配信オプション
FCM では、Android デバイスに送信されるメッセージ用の特定の配信オプションが提供されており、Apple プラットフォームとウェブで同様のオプションを使用できます。たとえば、「折りたたみできる」メッセージの動作は、Android、Apple、JavaScript / ウェブで、それぞれ FCM の collapse_key 、 apns-collapse-id 、 Topic によってサポートされています。詳細については、このセクションの説明と関連するリファレンス ドキュメントをご覧ください。
折りたたみできないメッセージと折りたたみできるメッセージ
折りたたみできないメッセージとは、デバイスへの配信が個別に行われるメッセージです。折りたたみできないメッセージは、モバイルアプリにサーバーからデータをフェッチさせるための単なる合図ではなく、実際に意味のあるコンテンツを配信します。
折りたたみできないメッセージは、チャット メッセージや重要なメッセージでよく使用されます。たとえば、IM アプリでは、メッセージごとにコンテンツが異なるため、すべてのメッセージを配信する必要があります。
Android の場合、折りたたむことなく保存できるメッセージ数の上限が 100 件になっています。上限に達した場合は、保存されているすべてのメッセージが破棄されます。デバイスがオンラインに戻ったとき、メッセージ数の上限に達したことを示す特別なメッセージが届きます。この場合、通常はアプリサーバーとの完全な同期をリクエストすることで、アプリは状況に適切に対処できます。
Android でメッセージを折りたたみ可能としてマークするには、メッセージ ペイロードに collapse_key オプションの使用方法について パラメータを含めます。折りたたみキーのデフォルト値は、Firebase コンソールに登録されているアプリのパッケージ名です。FCM サーバーはデバイスあたり 4 つの折りたたみ可能なメッセージを、それぞれ異なる折りたたみキーで同時に保存できます。この上限を超えた場合は、引き続き 4 つの折りたたみキーが保存されますが、どのキーが保存されるかは保証されません。
ペイロードのないトピック メッセージは、デフォルトで折りたたみ可能です。通知メッセージは常に折りたたみ可能で、 collapse_key パラメータを無視します。
パフォーマンス面から見ると、アプリで折りたたみできないメッセージを使用する必要がなければ、折りたたみできるメッセージを選択するのが適切です。ただし、折りたたみできるメッセージを使用する場合、FCM で使用できる異なる折りたたみキーは、任意の時点で登録トークンごとに最大 4 つまでという制限があるので注意してください。この上限を超えると予測できない事態を招く可能性があるので、上限内に収まるようにしてください。
- collapseKey (Android オプションの使用方法について の場合)
- apns-collapse-id (Apple の場合)
- Topic (ウェブの場合)
- collapse_key (プラットフォームを問わず、以前のプロトコルの場合)
メッセージの優先度の設定
ダウンストリーム メッセージに配信の優先度を割り当てるオプションとして、標準(normal)と高(high)の 2 つの優先度があります。動作はプラットフォームによって若干異なりますが、標準の優先度と高い優先度のメッセージ配信は次のような仕組みで行われます。
優先度: 標準。アプリがフォアグラウンドで動作中の場合、優先度が標準のメッセージはすぐに配信されます。アプリがバックグラウンドで動作している場合は、配信が延期されることがあります。新着メールの通知、UI の同期の維持の通知、バックグラウンドでのアプリデータの同期の通知など、緊急度の低いメッセージでは、標準の配信優先度を選択します。
優先度: 高。デバイスが Doze オプションの使用方法について オプションの使用方法について モードになっている場合であっても、優先度の高いメッセージは即時配信が試みられます。高い優先度のメッセージは、なるべく早くユーザーに確認してもらう必要のあるコンテンツ向けです。
以下に優先度が標準のメッセージの例を示します。マガジンの購読者に新しいコンテンツがダウンロード可能になったことを通知するために、FCM の HTTP v1 プロトコル経由で送信されることを想定しています。
メッセージの有効期間の設定
FCM では通常、メッセージが送信されるとすぐに配信されます。しかし、常にそのように動作するとは限りません。たとえば、プラットフォームが Android の場合、デバイスが電源オフまたはオフライン、あるいは利用できない状態になっていることがあります。また、アプリによる過剰なリソースの消費やバッテリー寿命への悪影響を防ぐために FCM が意図的にメッセージの配信を遅らせることもあります。
Android およびウェブ / JavaScript では、メッセージの最大有効期間を指定できます。その値は 0~2,419,200 秒(28 日)の間で設定する必要があります。28 日は FCM が配信を試みるまでにメッセージを保存できる最大期間です。このフィールドがないリクエストには、有効期間として最長の 4 週間(28 日)がデフォルトで設定されます。
- ビデオチャットの通話着信
- 期限が近づいている招待イベント
- カレンダーの予定
メッセージの有効期間を指定するもう 1 つの利点として、FCM では有効期間の値が 0 秒のメッセージに対してスロットリングが行われないことが挙げられます。つまり、FCM ではメッセージを「すぐに送信するかまったく送信しない」ように最大限の努力が保証されます。 time_to_live の値を 0 にすると、直ちに配信できないメッセージは破棄されることに注意してください。ただし、こうしたメッセージは保存されることがないため、通知メッセージの送信についてはレイテンシが最小になります。
複数送信者からのメッセージの受信
FCM では、複数の当事者が同じクライアント アプリにメッセージを送信することができます。たとえば、複数の寄稿者から集約した記事をユーザーに配信するクライアント アプリがあるとします。各寄稿者が新しい記事を公開する際にはクライアント アプリ向けにメッセージを送信できなければいけません。このメッセージには、クライアント アプリが記事をダウンロードするための URL が含まれる場合があります。FCM では、すべての送信アクティビティを 1 か所で集中管理する代わりに、各寄稿者が各自のメッセージを送信することを許可できます。
この機能を有効にするには、送信者ごとの送信者 ID が必要です。クライアント アプリは、登録をリクエストする際、複数回にわたってトークンをフェッチします。このとき、対象デバイス フィールド内の送信者 ID はその都度異なり、以下に示す特定のプラットフォーム用のトークン取得メソッドが使用されます。
- Swift - token(completion:)
- Android オプションの使用方法について - FirebaseMessaging.getInstance().getToken()
1 つのトークン リクエストに複数の送信者 ID を追加しない でください。予期しない結果が生じる可能性があります。送信者 ID ごとに 1 回ずつ、個別に呼び出しを行います。
なお、送信者の数には 100 オプションの使用方法について 名までという上限があります。
メッセージの有効期間
アプリサーバーが FCM にメッセージを送信し、メッセージ ID を受け取っても、メッセージがすでにデバイスに配信されたことを意味するわけではありません。これは、単にメッセージが配信のために受理されたことを意味します。その後のメッセージの処理は、多くの要因に依存します。
デバイスが FCM に接続済みで、画面がオンになっていて、スロットリングの制限がないという最善のシナリオでは、メッセージがすぐに配信されます。
デバイスが FCM に接続されていても Doze モードになっている場合、優先度の低いメッセージはデバイスが Doze 状態でなくなるまで FCM で保管されます。こうした場合は オプションの使用方法について collapse_key フラグが役立ちます。同じ折りたたみキー(および登録トークン)を持つメッセージがすでに保存されていて、配信待ちになっている場合、古いメッセージは破棄され、新しいメッセージが設定されます(つまり古いメッセージが新しいメッセージによって折りたたまれます)。しかし、折りたたみキーが設定されていない場合は、新しいメッセージも古いメッセージも今後の配信のために保存されます。
デバイスが FCM に接続されていない場合、メッセージは(ここでも折りたたみキーのルールに従って)接続が確立されるまで保存されます。接続が確立されると、保留中のすべてのメッセージが FCM によってデバイスに配信されます。そのデバイスの再接続が一度も行われなかった場合(工場出荷時の状態にリセットされた場合など)、メッセージは最終的にタイムアウトし、FCM ストレージから破棄されます。 time_to_live フラグが設定されていない場合、デフォルトのタイムアウトは 4 週間になっています。
Android または Apple プラットフォームでのメッセージ配信の詳細については、FCM レポート オプションの使用方法について オプションの使用方法について ダッシュボードをご覧ください。このダッシュボードには、Android アプリの「インプレッション」(ユーザーが表示した通知)のデータとともに、Apple デバイスと Android デバイスで送信および開封されたメッセージの数が記録されています。
ダイレクト チャネル メッセージングが有効になっている Android デバイスが 1 か月以上 FCM に接続されていない場合、FCM は引き続きメッセージを受け取りますが、すぐに破棄します。最後のデータ メッセージの送信から 4 週間以内にデバイスが接続した場合、クライアントは onDeletedMessages() コールバックを受け取ります。この場合、通常はアプリサーバーとの完全な同期をリクエストすることで、アプリは状況に適切に対処できます。
さらに、FCM がデバイスへのメッセージ配信を試みても、アプリがアンインストールされていた場合、FCM はそのメッセージをすぐに破棄し、登録トークンを無効にします。それ以降、そのデバイスにメッセージを送信しようとすると NotRegistered エラーが発生します。
スロットル処理とスケーリング
Google の目標は、すべてのメッセージを常に FCM 経由で配信することです。ただし、すべてのメッセージを配信すると、結果として全体的なユーザー エクスペリエンスが低下する場合があります。また、FCM がすべての送信者にスケーラブルなサービスを提供できるようにするには、境界を設定する必要がある場合もあります。
折りたたみできるメッセージのスロットル処理
折りたたみできるメッセージでは、メッセージのバーストは 1 デバイスにつき オプションの使用方法について 1 アプリあたり 20 件に制限され、3 分ごとにメッセージ 1 件が差し替えられます。
XMPP サーバーのスロットル処理
FCM XMPP サーバーに接続できる頻度は、プロジェクトごとに 1 分あたり 400 回に制限されています。これはメッセージ配信では問題になりませんが、システムの安定性確保には重要です。
FCM は、プロジェクトあたり 2, 500 件の同時接続を許可します。
デバイス 1 台に対する最大メッセージ レート
1 台のデバイスに送信できるメッセージは、1 分あたり最大 240 件、1 時間あたり最大 5,000 件です。このしきい値が高いのは、ユーザーがチャットで高速にやりとりしている場合など、短期間のトラフィックのバーストを許容するためです。この制限により、送信ロジックのエラーによって誤ってデバイスの電池が消耗されるのを防ぐことができます。
アップストリーム メッセージの制限
アップストリームの送信先サーバーが過負荷にならないように、プロジェクトごとのアップストリーム オプションの使用方法について メッセージ は 1,500,000 件/分に制限されています。
アプリの不適切な動作による電池の消耗を防ぐために、デバイスあたりのアップストリーム メッセージは 1,000 件/分に制限されています。
トピック メッセージの制限
トピック登録の追加 / 解除レートは、プロジェクトごとに 3,000 オプションの使用方法について QPS に制限されています。
ファンアウトのスロットル処理
メッセージのファンアウトは、複数のデバイスにメッセージを送信するプロセスです。トピックとグループをターゲットにする場合や、Notifications Composer を使用してオーディエンスまたはユーザー セグメントをターゲットにする場合に使用されます。
メッセージのファンアウトは瞬間的ではないため、同時に複数のファンアウトが進行する場合があります。プロジェクトあたりのメッセージの同時ファンアウト数は 1,000 に制限されています。1,000 に達すると、一部の進行中のファンアウトが完了するまで、追加のファンアウト リクエストが拒否されたり、リクエストしたファンアウトが遅延したりする場合があります。
実際に到達可能なファンアウト レートは、同時にファンアウトをリクエストするプロジェクトの数に影響されます。個々のプロジェクトに対するファンアウト数 10,000 QPS オプションの使用方法について オプションの使用方法について オプションの使用方法について は一般的なレートですが、その数は保証されたものではなく、システム全体の負荷によって異なります。利用可能なファンアウト容量は、ファンアウト要求間ではなくプロジェクト間で分割される点に注意してください。そのため、プロジェクトで 2 つのファンアウトが進行中の場合、各ファンアウトには使用可能なファンアウト レートの半分しか表示されません。ファンアウト速度を最大化するには、進行中のアクティブなファンアウトを一度に 1 つのみにすることをおすすめします。
FCM ポートとファイアウォール
組織がファイアウォールによってインターネットとの間のトラフィックを制限している場合は、ネットワーク上のデバイスがメッセージを受信できるようにモバイル デバイスと FCM の接続を許可する構成を行う必要があります。通常、FCM はポート 5228 を使用しますが、443、5229、5230 を使用することもあります。
ネットワーク上で接続を行うデバイスに対し、FCM は特定の IP を提供しません。これは、Google の IP 範囲が頻繁に変化し、ファイアウォール ルールが古くなって、ユーザーのエクスペリエンスに影響を及ぼす可能性があるためです。理想としては、ポート 5228~5230 と 443 を IP 制限なしで許可リストに登録します。ただし、IP 制限が必要な場合は、goog.json にリストされている IP アドレスをすべて許可リストに登録する必要があります。この長大なリストは定期的に更新されます。使用しているルールを毎月更新することをおすすめします。ファイアウォールの IP 制限に起因する問題は、多くの場合断続的であり、診断が困難です。
Google では、IP アドレスの代わりに、許可リストに登録可能な一連のドメイン名を提供しています。ホスト名は以下のとおりです。Google で追加のホスト名が使用されるようになると、こちらのリストが更新されます。ファイアウォール ルールにドメイン名を使用すると、ファイアウォール デバイスで機能しない場合があります。
開くポート:
開くホスト名:
- mtalk.google.com
- mtalk4.google.com
- mtalk-staging.google.com
- mtalk-dev.google.com
- alt1-mtalk.google.com
- alt2-mtalk.google.com
- alt3-mtalk.google.com
- alt4-mtalk.google.com
- alt5-mtalk.google.com
- alt6-mtalk.google.com
- alt7-mtalk.google.com
- alt8-mtalk.オプションの使用方法について google.com
- android.apis.google.com
- device-provisioning.googleapis.com
- firebaseinstallations.googleapis.com
ネットワーク アドレス変換およびステートフル パケット インスペクション用のファイアウォール:オプションの使用方法について
ネットワーク アドレス変換(NAT)またはステートフル パケット インスペクション(SPI)をネットワークで実装している場合は、ポート 5228~5230 での接続に 30 分以上のタイムアウトを設定してください。これにより、信頼性の高い接続を提供しつつ、ユーザーのモバイル デバイスの電池消費量を削減できます。
実装する FCM 機能によっては、Firebase プロジェクトから次の認証情報の取得が必要になる場合があります。
各クライアント アプリ インスタンスを識別する一意のトークン文字列。単一のデバイスとデバイス グループへのメッセージングに必要になります。登録トークンは非公開にしなければならないことに注意してください。
アプリサーバーによる Google サービスへのアクセス(以前の Firebase Cloud Messaging プロトコル経由でのメッセージの送信など)を承認するサーバーキー。サーバーキーは Firebase プロジェクトの作成時に取得します。サーバーキーを確認するには、Firebase コンソールの [設定] ペインにある [クラウド メッセージング] タブに移動します。
重要: オプションの使用方法について クライアント コードにはサーバーキーを含めないでください。また、アプリサーバーの承認には、必ずサーバーキーのみを使用してください。Android、Apple プラットフォーム、ブラウザのキーは、FCM で拒否されます。
Except as otherwise noted, the content of this page is licensed under オプションの使用方法について the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache オプションの使用方法について 2.0 License. For details, see the Google Developers Site Policies. Java is a registered オプションの使用方法について trademark of Oracle and/or its affiliates.
BIOS(バイオス)とは?基本的な知識やBIOS設定画面の起動方法や操作方法などをご紹介
PCが起動しない場合の対応として、BIOS設定のリセットを試したい場合などは「リチウムイオン電池(CR2032など)」などの電池を外して数分放置すると、出荷時の設定などにリセットできます。
これを「CMOSクリア」と呼び、マザーボードに保存されている「CMOS情報」を消す操作となります。
マザーボードのパーツ交換時やBIOSの設定をミスしてリセットしたい場合などにも「CMOSクリア」は有効な手段となりますが「日時の設定」は再度設定をする必要がありますので注意が必用です。
後の章でBIOSでの日時設定の方法を紹介します。
※「CMOSクリア」の実施はご自身の判断で慎重に実施をするようにしてください。
BIOSの種類について
その後、BIOSの設定は、2010年から「UEFI(Unified Extensible Firmware Interface)」 オプションの使用方法について オプションの使用方法について のへの移行が進んでいます。
UEFIはOSとファームウェアの間を取り持つインターフェースの仕様です。
近年のパソコンはUEFIインターフェースでの BIOS設定が主流となります。
この記事では、UEFI でのBIOSの設定方法を中心に紹介をしていきます。
BIOSの起動方法「BISOメインメニュー」の呼び出し方
BIOSの設定画面を表示するために「PCの電源ボタンを押した直後」にキーボードで起動するための「キーを連打」する必要があります。
UEFI BIOSの設定画面の呼び出し用キーはメーカーごとに違っていて、いくつか種類があります。
マザーボードメーカー別の「UEFI BIOS起動キー」を一部紹介します。
「F2」キーか「Del」キーが多い傾向にあるので、順番に試してみても良いでしょう。
- ASROCK:「F2」キー
- ASUS:「Del」キー
- BIOSTAR:「Del」キー
- GIGABYTE:「Del」キー
- Intel:「F2」キー
- MSI:「Del」キー
BIOS画面が起動するとBIOSメイン画面の表示になります。
例としてASROCKの「UEFI BIOS画面」の例を紹介していますが、基本的な操作方法はメーカーは違っても同じ傾向にありますので、参考になると思います。
コメント