経験豊富なシステム管理者は通常、ニーズに合わせてLinuxシステムをカスタマイズし、一貫した環境を作成します。しかし、しない環境で作業している場合はどうでしょうか。 永続的な変更を行う権限がありますか?それとも、他の部門の誰かを助けているだけですか?他のサーバーがLinuxの異なる「フレーバー」または異なるタイプのUnixを実行している場合もあります。
いくつかの実用的な状況で役立つ可能性のある、簡単で汚いトリックをいくつか紹介します。
[読者も気に入っています:もっと愚かなBashのトリック:変数、検索、ファイル記述子、リモート操作]
ルールを理解し、ルールを破るタイミングを知る
変数は、理解しやすく、自己文書化され、メンタルヘルスを維持するために、明確な名前を付ける必要があります。誰もがそれに同意すると思います。
しかし、深夜に本番環境の問題のトラブルシューティングを迫られ、速く移動したい場合があります。 。
また、長いコマンドを複数回実行する必要があることがわかっているため、入力を節約する必要がある場合もあります。通常の状況では、エイリアスを作成してログインプロファイルに配置します。ただし、ここでは、インシデントの解決に焦点を当てているときに、なじみのない環境について話します。
「ネットワーク接続が多すぎる」という典型的なケース
「何か」が機能していないため、午前2時にページングされます。今夜まですべて正常に機能しました。
ss
のバリエーションから始めます コマンド(または、私のように少し年上の場合はnetstat)を使用すると、数百に気付くでしょう。 TIME-WAITでの接続の数 およびCLOSE-WAIT メインサーバーで。
注 :以下のアニメーションでは、 ss -4a
を使用しています すべてのIPv4接続を一覧表示するコマンド。しかし、私たちは WAITにあるものにもっと興味があります 状態:
これらの接続はすべて、少なくとも2台のサーバーのポート50505を指しているように見えることがわかります。宛先IPとポートはフィールド#6にあります。下の画像を参照してください。
ここで、いくつを知りたいと思います。 ターゲットIPごとに接続が保留中です。
これは、 ss
を微調整することで実現できます。 以前に使用したコマンド:
手順の順序は次のとおりです。
- コマンド
ss-4a |を使用して、ヘッダーと最初の10行の確認を開始します。 grep WAIT |頭
- 次に、
パイプ code> それを
awk
、この場合、フィールド#6を印刷するために使用されます(スペースがデフォルトの区切り文字であると想定しています)。 - その後、
sort
前の出力は、次に、関係する個別の宛先サーバーの数を取得するためです。 - 最後に、
uniq -c
を使用します 一意の行の数を表示します。このタスクの最終ステップにあるため、head
を削除する必要があります 出力の作成中に使用していたコマンド。
調査のこの時点で、「他の2つの宛先が影響を受けるため、根本的な原因はクラスターレベルか、ネットワーク/ファイアウォールに関連する」などの相関関係を作成し始めることができます。
ss
の出力をカスタマイズする方法は確かにあります 興味のある列のみを表示します。ただし、午前2時に検索したくない場合があります。これはほんの一例であり、他の多くの状況では、複数のオプションを備えた他のコマンドがあります。
ここでのアイデアは、すでに使用したいくつかのコマンドから、おそらくおなじみの出力をすばやく操作する方法を示すことです(ただし、出力を構成するためのすべての可能な方法を覚える必要はありません)。
「空きディスク容量が少ない」という典型的なケース
実生活からの別の例:問題のトラブルシューティングを行っていて、1つのファイルシステムがその容量の100%になっていることがわかりました。
本番環境には多くのサブディレクトリとファイルが存在する可能性があるため、問題(または解決策)が1つ以上にある可能性があるため、「最悪のディレクトリ」を分類する方法を考え出す必要がある場合があります。
次の例では、要点を説明するための非常に簡単なシナリオを示します。
手順の順序は次のとおりです。
- ディスク容量が少ないファイルシステムに移動します(例としてホームディレクトリを使用しました)。
- 次に、コマンド
df -k *
を使用します ディレクトリのサイズをキロバイト単位で表示します。 - 大きなものを見つけるには分類が必要ですが、
sort
デフォルトでは、このコマンドは数値を値としてではなく文字として扱うため、十分ではありません。 -
-n
を追加しますsort
に コマンド。これで最大のディレクトリが表示されます。 - 他の多くのディレクトリに移動する必要がある場合は、
エイリアス
を作成します 役に立つかもしれません。
[この無料のチートシートでKubernetesの使用の基本を学びます。 ]
まとめ
grep
など、さまざまな状況で役立つコマンドがあります 、 awk
、 sort
。いくつかの基本的なオプションを理解し、それらを組み合わせると、他のコマンドからの出力を操作および簡略化する必要がある場合、またはテキストファイルを処理する場合に非常に効果的です。
これらのコマンドは、新旧を問わず、ほぼすべてのUnixバリエーションに存在するため、トリックの袋に入れると便利です。これらのツールがいつあなたの命を救うかはわかりません(ウィンク)。