Plannning-Venue Advent Calendar 2021の6日目です。
前日はnginxで静的サイトの構築でした。
普段はApacheを触ることがほとんどなので、早速やってみたいと思います。
さて、今回の記事はLinuxサーバーの再起動についてです。
個人で運用しているサーバーの再起動は(私も)結構適当にえいやっとやってしまうのですが、
これがクライアントのサーバーだと話が変わってきます。
素直に再起動してくれればよいのですが、再起動後に不具合が発生したときの保険ということで、
再起動前後に立ち上がっているプロセスを保管しておくとトラブルシュートに役立ちます。
一例として、私がサーバーを再起動する際に教わった各プロセス等の取得について書いていきます。
以下に書くものよりもっとこうしたほうが良いのでは?というものがあればコメントいただけると幸いです。
繰り返し書きますがこれはあくまで一例です。
では行きましょう。
最初に
なにはともあれログとして残す上で以下のコマンドを実行します。
$ who
$ w
$ hostname
$ ifconfig
$ df -h
・whoとwコマンドでログイン情報を確認
・hostnameとifconfigコマンドで対象サーバーを確認
・dfコマンドで容量確認
こんな感じで叩いておけば対象確認と作業前の確認は一通り問題ないかと思います。
後は適当なディレクトリを用意してあげて作業開始です。
以下それぞれのコマンド実行結果をファイルに出力して保存していきます。
ps
psコマンドで全ユーザの全プロセスを取得します。
オプション等で派閥があるようですが、私は以下のコマンドを実行しています。
$ ps auxww
$ ps axww
違いは出力フォーマットです。トラブった状況次第でどっちが見やすいかが変わってくると思うので私は両方取っている感じです。
psコマンドのその他オプション等についてはこちら
netstat
RHEL 7以降では非推奨となっているコマンド(代替はssコマンド)で、デフォルトではインストールされていない場合も増えてきましたね......
だけど叩けるならnetstatでいいじゃんってことで実行しちゃってます。
※EC2だと大体叩けるのでなんだかんだ便利...ホントは変えたほうが良いのですが......
以下2つのコマンドを実行しています。
netstat -anp
netstat -rn
オプションについて書いていくと長くなりすぎてしますので以下のmanページでご確認ください(ぶん投げ)
mount
mountコマンドで現在のmount状況を確認しておきます。
これはオプション無しでそのままです。
$ mount
その他オプション等についてはこちら
iptables
Amazon Linux等ではセキュリティグループがあるのでデフォルトでdisableされていますが、NATインスタンスだったりDoS対策等でenableになっている場合があります。
再起動の際に稼働状況を確認し、稼働している場合は状態を保存しておきましょう。
$ iptables -L
$ iptables -L -t nat
-Lで全てのチェインのリストを一覧表示、-t natでNATテーブルを表示します。
詳細はこちら
sysctl
カーネルのパラメータを確認します。
sysctlコマンドに-aオプションを付けて、利用できるすべての値を表示します。
$ sysctl -a
その他オプションについてはこちら
docker
dockerが稼働している場合はpsで稼働状況を確認しておきます。
-aもつけて停止中のコンテナも確認しておきましょう。
$ docker ps -a
その他オプションについてはこちら
まとめ
ざっくりと紹介していきました。
サーバーの再起動は何が起こるかわからないので事前にできるだけの準備はしておいて損は無いですね。
今回初めてアドベントカレンダーに参加していますが、今までなんとなくの理解のままだったものが結構あってショックだったと共に
モチベーションアップにも繋がりました。果たしてSVN構築はできるのだろうか。。。