GNU/Linux >> Linux の 問題 >  >> Linux

Linuxサーバーで最初の10分間に行う9つのこと

Linuxでソフトウェアをテストするとき(私の仕事の通常の部分)、Linuxを実行しているさまざまなアーキテクチャで複数のサーバーを使用する必要があります。マシンをプロビジョニングし、必要なソフトウェアパッケージをインストールし、テストを実行し、結果を収集して、他の人がテストに使用できるようにマシンをプールに戻します。

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

私はこれを頻繁に(1日に複数回でも)行うので、Linuxサーバーでの最初の10分間は毎日の儀式になりました。 Linuxサーバーに最初にログインするときは、コマンドを使用して特定のものを探し、必要な情報を収集します。この記事でプロセスを説明しますが、ほとんどの場合、コマンド名を指定するだけなので、必要な情報を取得するには、これらのコマンドの特定のフラグを特定する必要があることに注意してください。コマンドのマニュアルページを読むことは良い出発点です。

1。最初の連絡先

サーバーにログインしたらすぐに、最初に行うことは、実行するテストに必要なオペレーティングシステム、カーネル、およびハードウェアアーキテクチャがサーバーにあるかどうかを確認することです。サーバーが稼働している時間をよく確認します。テストシステムは複数回再起動されるため、これはそれほど重要ではありませんが、それでもこの情報は役に立ちます。

この情報を取得するには、次のコマンドを使用します。私は主にテストにRedHatLinuxを使用しているため、別のLinuxディストリビューションを使用している場合は、*-releaseを使用してください。 redhat-releaseの代わりにファイル名で :

cat /etc/redhat-release
uname -a
hostnamectl
uptime

2。他に誰かが乗っていますか?

マシンが自分のテストニーズを満たしていることがわかったら、自分のテストを実行すると同時に他の人がシステムにログインしていないことを確認する必要があります。可能性は非常に低いですが、プロビジョニングシステムがこれを処理してくれるので、サーバーに初めてログインする場合は特に、時々チェックすることをお勧めします。また、システムにアクセスできる他のユーザー(root以外)がいるかどうかも確認します。

この情報を見つけるには、次のコマンドを使用します。最後のコマンドは、/etc/passwdでユーザーを検索します シェルアクセス権を持つファイル。シェルアクセスがないか、シェルがnologinに設定されているファイル内の他のサービスをスキップします :

who
who -Hu
grep sh$ /etc/passwd

3。物理マシンまたは仮想マシン

自分自身にマシンがあることがわかったので、それが物理マシンなのか仮想マシン(VM)なのかを識別する必要があります。自分でマシンをプロビジョニングすれば、自分が求めていたものを確実に手に入れることができます。ただし、プロビジョニングしていないマシンを使用している場合は、そのマシンが物理的であるか仮想的であるかを確認する必要があります。

次のコマンドを使用して、この情報を識別します。物理システムの場合は、ベンダーの名前(HP、IBMなど)とサーバーのメーカーとモデルが表示されます。一方、仮想マシンでは、VMの作成に使用された仮想化ソフトウェアに応じて、KVM、VirtualBoxなどが表示されます。

dmidecode -s system-manufacturer
dmidecode -s system-product-name
lshw -c system | grep product | head -1
cat /sys/class/dmi/id/product_name
cat /sys/class/dmi/id/sys_vendor

4。ハードウェア

Linuxマシンに接続されたハードウェアをテストすることが多いため、通常はVMではなく物理サーバーを使用します。物理マシンでの次のステップは、サーバーのハードウェア機能を特定することです。たとえば、実行中のCPUの種類、実行中のコアの数、有効になっているフラグ、テストの実行に使用できるメモリの量などです。ネットワークテストを実行している場合は、サーバーに接続されているイーサネットまたはその他のネットワークデバイスの種類と容量を確認します。

次のコマンドを使用して、Linuxサーバーに接続されているハードウェアを表示します。一部のコマンドは、新しいオペレーティングシステムバージョンでは非推奨になる可能性がありますが、yumリポジトリからインストールするか、同等の新しいコマンドに切り替えることができます。

lscpu or cat /proc/cpuinfo
lsmem or cat /proc/meminfo
ifconfig -a
ethtool <devname>
lshw
lspci
dmidecode

5。インストールされたソフトウェア

ソフトウェアをテストするには、常に追加の依存パッケージやライブラリなどをインストールする必要があります。ただし、何かをインストールする前に、すでにインストールされているもの(バージョンを含む)と構成されているリポジトリを確認するため、ソフトウェアの出所がわかります。 、およびパッケージのインストールの問題をデバッグできます。

次のコマンドを使用して、インストールされているソフトウェアを特定します。

rpm -qa 
rpm -qa | grep <pkgname>
rpm -qi <pkgname>
yum repolist
yum repoinfo
yum install <pkgname>
ls -l /etc/yum.repos.d/

6。プロセスとサービスの実行

インストールされているソフトウェアを確認したら、システムで実行されているプロセスを確認するのは自然なことです。これは、システムでパフォーマンステストを実行する場合に重要です。実行中のプロセス、デーモン、テストソフトウェアなどがCPU / RAMの大部分を消費している場合は、テストを実行する前にそのプロセスを停止するのが理にかなっています。これにより、テストに必要なプロセスまたはデーモンが稼働していることも確認されます。たとえば、テストでhttpdを実行する必要がある場合、パッケージがインストールされていても、デーモンを開始するサービスが実行されていない可能性があります。

次のコマンドを使用して、システムで実行中のプロセスと有効なサービスを特定します。

pstree -pa 1
ps -ef
ps auxf
systemctl

7。ネットワーク接続

今日のマシンは高度にネットワーク化されており、ネットワーク上の他のマシンまたはサービスと通信する必要があります。サーバーで開いているポート、ネットワークからテストマシンへの接続があるかどうか、ファイアウォールが有効になっているかどうか、有効になっている場合はポートをブロックしているか、マシンが通信しているDNSサーバーを特定します。

次のコマンドを使用して、ネットワークサービス関連の情報を識別します。非推奨のコマンドが利用できない場合は、yumリポジトリからインストールするか、同等の新しいコマンドを使用してください:

netstat -tulpn
netstat -anp
lsof -i
ss
iptables -L -n
cat /etc/resolv.conf

8。カーネル

システムテストを行うときは、カーネルのバージョンやロードされているカーネルモジュールなど、カーネル関連の情報を知っておくと便利です。また、調整可能なカーネルパラメータとその設定内容を一覧表示し、実行中のカーネルを起動するときに使用されるオプションを確認します。

次のコマンドを使用して、この情報を識別します。

uname -r
cat /proc/cmdline
lsmod
modinfo <module>
sysctl -a
cat /boot/grub2/grub.cfg

9。ログ

これで、インストールされているソフトウェアや実行されているプロセスなど、サーバーについての良いアイデアが得られました。逃げられないもう1つのことは、ログファイルです。継続的に更新されている情報をどこで確認するかを知る必要があります。

次のコマンドを使用して、システムのログを確認します。

dmesg
tail -f /var/log/messages
journalctl
次のステップ

コマンドとユーティリティは変更されますが、それらが表示する基本的な情報はほぼ同じです。マスターするコマンドに集中する前に、探している情報とそのカテゴリに分類される情報の高レベルのビューが必要です。

Linuxはほとんどの情報をファイルに保存するため、これらのコマンドは基本的にファイルから情報を読み取り、わかりやすい方法で表示します。次の良いステップは、表示する情報を取得するために各コマンドが使用するファイルを特定することです。その情報を見つけるためのヒントは、straceです。 コマンド。


Linux
  1. Linuxサーバーのネットワーク接続をnetstatで表示する

  2. Linuxサーバーを保護するための7つのステップ

  3. マシンに構成されているDNSサーバーを確認する方法は? Linux / Windows / OSX

  1. LinuxでOpenVPNサーバーを構成する

  2. LinuxPCにOpenVPNをインストールします

  3. Linuxサーバーを監視する方法は?

  1. CheckmkでLinuxサーバーを監視する

  2. LinuxPCにVPNサーバーをセットアップする

  3. OpenSSHを使用してLinuxサーバーに接続する方法