サーバ移行をするときの調査コマンド集

はじめに

サーバ移行をするときにサーバ移行元のミドルウェアやインストールされているソフトウェア、自動起動の設定など調査をする項目がいくつかある。
上記のようなケースの際に調査をするコマンドを列挙していく。

OSの情報を知りたい

/etc/os-release

cat /etc/os-release

/etc/system-release

cat /etc/system-release

カーネルのバージョンを知りたい

/proc/version

cat /proc/version

/etc/distributionName-release

cat /etc/distributionName-release

distributionNameに対応する項目は名前の通り、ディストリビューションによる。 例を挙げると以下になる。

OS                      対応するファイル    
Red Hat Enterprise Linux/etc/redhat-release
CentOS                  /etc/centos-release
AmazonLinux              /etc/amazon-linux-release

uname

uname -a

CPUの情報を知りたい

lscpu

lscpu

/proc/cpuinfo

cat /proc/cpuinfo

メモリの情報を知りたい

free

-mオプションでMB単位になる。

free -m

-hオプションをつけると読みやすい形式になる。

free -h

この形式だと、Giで表現される。
Giについては下記の記事を参照。
https://dev.classmethod.jp/articles/gb-vs-gib/

稼働しているプロセスを知りたい

ps

ps aux

auxでは

  • a: すべてのユーザーのプロセスを表示
  • u: 詳細なユーザー情報を表示
  • x: 制御端末を持たない(バックグラウンドで実行されている)プロセスも表示 となる。

hostsファイルに登録されている内容を知りたい

/etc/hosts

cat /etc/hosts

ホスト名を知りたい

hostname

hostname

ユーザの一覧を知りたい

/etc/passwd

cat /etc/passwd

グループの一覧を知りたい

/etc/group

cat /etc/group

日付を知りたい

date

UTCなのかその他タイムゾーン(JTC等)なのかをチェックする。

date

ロケール設定を知りたい

言語設定を確認する。

locale

locale

localectl

localectl status

インストールされているパッケージの確認を知りたい

apt

apt list --installed

dpkg

apt-getで入れている場合はこれでも確認可能。

dpkg --get-selections
dpkg -l

でもよい。

yum

yum list installed

dnf

dnf list installed

※yumの後継のためコマンドに互換性がある。

パッケージの取得先(リポジトリ)リストを知りたい

apt

cat /etc/apt/sources.list

or

apt-cache policy

yum

yum repolist

dnf

dnf repolist

ディスク容量を知りたい

df -h

crontabを知りたい

crontab

crontab -l

/var/spool/cron/

crontabはユーザごとに設定してあるので /var/spool/cron/ 以下を確認する

cat /var/spool/cron/*

自動起動の設定を知りたい

chkconfig

※systemdより前のinitdで動いているOSで使用されていたもの。  現在ではあまり見ない。

chkconfig --list

ランレベルで on/offが設定されているので 全てoffであれば自動起動はされていないと言える。

systemctl list-unit-files

systemdが稼働している場合はこちらで確認。

systemctl list-unit-files --all --type=service

ポートの待ち受け状況について知りたい

netstat

netstat -lntu

lsof

lsof -i -P -n | grep LISTEN

ss

ss -antup | grep LISTEN

メール送受信(MTA)を知りたい

alternatives –display mta

alternatives --display mta

大体、sendmailpostfixを使っているのでどちらが使用されているかを確認する。

その他 ミドルウェアに関連すること

大体のミドルウェアのバージョンは

[コマンド] -v
[コマンド] --version

などで知ることができる。

Apache

バージョンを知リたい

httpd -v

apachectl が使用できる場合はそちらでも。

モジュール一覧

httpd -M

PHP

バージョンを知リたい

php -v

モジュール一覧

php -m

php.iniの読み込み場所の確認

php -i | grep php.ini

MySQL

バージョンを知る

クライアントのバージョン

mysql --version

サーバのバージョン
※MySQL にログインして以下を実行する

select version();

参考

おわりに

直近1年でサーバ移行のタスクが多くあったので、その際に移行元のサーバを調査した時のコマンドをこの記事にまとめた。
比較的小規模なサーバが多かったのと、複雑な設定がなかったため苦労しなかったのでこの辺りのコマンドで調査するだけで移行はできた。
この記事を書いていて、他の方もこのようなタスクがあるだろうなと思いながら検索したら、素晴らしい記事がたくさんあった。
特にノーヒントサーバ調査はかなり詳しく書いてあるので、コマンドの意味や用途を知りたい場合はこの記事をおすすめしたい。
自分が書いた記事は、忙しい人向けな感じになってる。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。