はじめに
サーバ移行をするときにサーバ移行元のミドルウェアやインストールされているソフトウェア、自動起動の設定など調査をする項目がいくつかある。
上記のようなケースの際に調査をするコマンドを列挙していく。
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
大体、sendmail
かpostfix
を使っているのでどちらが使用されているかを確認する。
その他 ミドルウェアに関連すること
大体のミドルウェアのバージョンは
[コマンド] -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();
参考
ノーヒントサーバ調査 (Linux編)
https://qiita.com/t_nakayama0714/items/9348e215f172562974e6インフラエンジニアと謎のサーバ
https://qiita.com/kanga/items/979b0bdc4653e025483a
おわりに
直近1年でサーバ移行のタスクが多くあったので、その際に移行元のサーバを調査した時のコマンドをこの記事にまとめた。
比較的小規模なサーバが多かったのと、複雑な設定がなかったため苦労しなかったのでこの辺りのコマンドで調査するだけで移行はできた。
この記事を書いていて、他の方もこのようなタスクがあるだろうなと思いながら検索したら、素晴らしい記事がたくさんあった。
特にノーヒントサーバ調査はかなり詳しく書いてあるので、コマンドの意味や用途を知りたい場合はこの記事をおすすめしたい。
自分が書いた記事は、忙しい人向けな感じになってる。