サーバーを再起動する前に確認すべきこと(備忘録)
お詫び
Qiitaの元記事にて、区切り線を「---」で書いている場所があり、これがZennの記法に干渉して一部うまく表示できない記事がある事を認識しています。
全ての記事を精査しきれていないため、お手数ですがお見かけの際は教えていただけると大変喜びます。
本番でアレがない!これが出来ない!という前に、転ばぬ先の杖。
とりあえず私が認識している範囲で書いているが、漏れてる事がいっぱいありそうだな…と思いつつ。
これからサーバーをさわる人の一助になれば幸い。
Linuxベースでまとめたが、WindowsでもMacでもサーバーはサーバー。適宜読み替えと対応が必要な場合がある。
su,sudo権限の有無
何も考えずにsu -、あるいはsudo su -。
これが出来ないとshutdown系のコマンド自体が成功しないので絶対に確認しておくこと。
sshなど
ログイン自体が出来るかどうか。
パスワードが間違っている場合もある。
システムを起動する順番、終了する順番
裏側でどんなものが動いてるか知る事はとても重要。
上記sshなどに関係するが、どこから接続されているのかはきちんと把握すること。
最近はインフラ側を気にしなくて良い事も増えたけど、アプリ側を吸収している場合はこの限りではない。
事前に手順書をもらっている場合
本番実施時に手順書を見る場合が普通なのでネットワークが試験・検証環境用のものだったりすると読み替えが発生して混乱を招く。
ファイルを分けるか項目で管理するなど、工夫をした方が良い。
なお、手順書は当時の時点で正しいのであって、現状保守されているとは限らないので、一度だけでもシステムを落とす前のギリギリまで手順通り実施することが大事。
ファイルを変更する可能性のあるディレクトリ以下でtouch
sudoが使えるならchownなりchmodなりで押し通せる。
が、ユーザーにsudo権限があるのか、あるいは手順でsudoを実施してよいのか、その辺りはキッチリ確認すべき。
sudo初回実行時のありがたいお言葉を添えておく。
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:
#1) 他人のプライバシーを尊重すること。
#2) タイプする前には考える事。
#3) 大いなる力には大いなる責任が伴うこと。
/etc.init.d/xxx status
あるいは、server xxx statusなど。この辺りのコマンドが使えない!なんて事も結構ある。
特にsudo権限やユーザー権限など細かい注文があることも。
which xxx
手順書には書いてるけどコマンドを叩いてみると失敗する場合は大体パスが通ってない。
あるいは、コマンドのバージョンが一致しないという事もあるので、この辺りは要注意。
(ほとんどの手順書でコマンドのバージョンが書いてない。たとえばruby,pythonなど)
プリインストールされていないコマンドが手順書に書いてある
teeとかsortとかrevとか、便利だけど環境によってはインストールできないコマンドもあるので、検証・試験環境と本番環境が違う場合は特に注意すること。
実行が出来ない分、上記の読み替えれば何とかなる系のコマンドより質が悪い。
再起動をすると環境が変わるもの
ipconfigとか/tmp以下など、またこれらに類するもの。
変な話だが、/tmpですらバックアップをどこかに持っておいたほうが良いかもしれない。
(本来は当然、そういう使い方をしないで下さいとお願いするか、消えても文句を言わないような運用を心掛けたい)
筆者はmapr環境構築時にこれがあって大変な事になった。
最終手段
内容を正しく把握している方の緊急連絡先や体制図を把握しておこう。
何かあったら即電話した方が結果的に被害が少ない事が多い。
Discussion