はじめに
サーバ移行をするときにサーバ移行元のミドルウェアやインストールされているソフトウェア、自動起動の設定など調査をする項目がいくつかある。
上記のようなケースの際に調査をするコマンドを列挙していく。
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-releasedistributionNameに対応する項目は名前の通り、ディストリビューションによる。
例を挙げると以下になる。
| OS | 対応するファイル |
|---|---|
| Red Hat Enterprise Linux | /etc/redhat-release |
| CentOS | /etc/centos-release |
| AmazonLinux | /etc/amazon-linux-release |
uname
uname -aCPUの情報を知りたい
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 auxauxでは
- 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
localelocalectl
localectl statusインストールされているパッケージの確認を知りたい
apt
apt list --installeddpkg
※apt-getで入れている場合はこれでも確認可能。
dpkg --get-selectionsdpkg -lでもよい。
yum
yum list installeddnf
dnf list installed※yumの後継のためコマンドに互換性がある。
パッケージの取得先(リポジトリ)リストを知りたい
apt
cat /etc/apt/sources.listor
apt-cache policyyum
yum repolistdnf
dnf repolistディスク容量を知りたい
df -hcrontabを知りたい
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 -lntulsof
lsof -i -P -n | grep LISTENss
ss -antup | grep LISTENメール送受信(MTA)を知りたい
alternatives –display mta
alternatives --display mta大体、sendmailかpostfixを使っているのでどちらが使用されているかを確認する。
その他 ミドルウェアに関連すること
大体のミドルウェアのバージョンは
[コマンド] -v
[コマンド] --versionなどで知ることができる。
Apache
バージョンを知リたい
httpd -vapachectl が使用できる場合はそちらでも。
モジュール一覧
httpd -MPHP
バージョンを知リたい
php -vモジュール一覧
php -mphp.iniの読み込み場所の確認
php -i | grep php.iniMySQL
バージョンを知る
クライアントのバージョン
mysql --versionサーバのバージョン
※MySQL にログインして以下を実行する
select version();参考
ノーヒントサーバ調査 (Linux編)
https://qiita.com/t_nakayama0714/items/9348e215f172562974e6インフラエンジニアと謎のサーバ
https://qiita.com/kanga/items/979b0bdc4653e025483a
おわりに
直近1年でサーバ移行のタスクが多くあったので、その際に移行元のサーバを調査した時のコマンドをこの記事にまとめた。
比較的小規模なサーバが多かったのと、複雑な設定がなかったため苦労しなかったのでこの辺りのコマンドで調査するだけで移行はできた。
この記事を書いていて、他の方もこのようなタスクがあるだろうなと思いながら検索したら、素晴らしい記事がたくさんあった。
特にノーヒントサーバ調査はかなり詳しく書いてあるので、コマンドの意味や用途を知りたい場合はこの記事をおすすめしたい。
自分が書いた記事は、忙しい人向けな感じになってる。