Linuxの本番サーバー作業でヒヤリハットした経験談|現役講師が20年で学んだ事故を防ぐ3つの確認習慣

HOMEリナックスマスター.JP 公式ブログLinux学習ガイド > Linuxの本番サーバー作業でヒヤリハットした経験談|現役講師が20年で学んだ事故を防ぐ3つの確認習慣
宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「本番サーバーでコマンドを打つ寸前に手が止まった」——そんな経験はありませんか。
エラーが出たわけでも、何か起きたわけでもない。でも何かが「おかしい」という感覚。

これがいわゆる「ヒヤリハット」です。実際の事故には至らなかったけれど、一歩間違えたら取り返しのつかないことになっていた——そういう経験が、Linux本番作業には思いのほか多くあります。

20年以上Linuxサーバーの運用・保守に携わってきた私が、実際に「冷や汗をかいた」瞬間を3つ紹介します。そしてそこから身につけた「事故を防ぐ確認習慣」を、セミナーで3,100名以上を指導してきた経験もふまえて解説します。

この記事のポイント

・rm+ワイルドカードの前には必ずlsで対象を目視確認する
・サービス停止前は影響範囲(連携システム・バッチ等)を書き出す
・設定ファイル変更前の「日付入りバックアップ」をルーティン化する
・ヒヤリハットは「事故の前に気づけた貴重な経験」として習慣化の機会にする


Linuxの本番サーバー作業でヒヤリハットした経験談|現役講師が20年で学んだ事故を防ぐ3つの確認習慣
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

なぜLinux本番作業は「手が止まる」場面が多いのか

Linux本番サーバーの作業が怖いのには、明確な理由があります。

一つは「コマンドは即座に実行される」という特性です。テキストエディタならUndoできますが、rmで削除したファイルは(バックアップがなければ)戻りません。serviceコマンドでサービスを落とせば、その瞬間から影響が出始めます。

もう一つは「影響が見えにくい」ことです。本番環境では、自分が把握していないサービスや処理が動いていることが多い。「このサーバーは自分しか使っていない」という思い込みが、思わぬ事故につながります。

私が20年以上の現場経験から言えることは、「ヒヤリハットを経験したことのないエンジニアはいない」ということです。でも「ヒヤリハット」の経験を「恥ずかしいこと」として話さない人も多くいます。実は逆で、ヒヤリハットは「事故の前に気づけた貴重な経験」です。そこから学ぶことで、本当の意味での安全な作業習慣が身につきます。

私が実際に経験した3つのヒヤリハット

1. rmコマンドのワイルドカードで、削除対象を間違えそうになった話

SE時代(2001年~2006年)、あるWebサービスの運用を任されていた頃の話です。
ログファイルがディスクを圧迫していたため、2003年分の古いログファイルを削除することになりました。

削除したかったのは `/var/log/webapp/access_2003*.log` でした。しかし作業中に焦ってしまい、入力したのは:

rm /var/log/webapp/access*.log

と書きかけたところで、手が止まりました。「あれ、このパターンだと2003年分だけじゃなく全部消えないか?」と気づいたのです。

慌てて先に `ls` で確認してみると、案の定、2004年・2005年のログも一致していました。もし確認せずにEnterを押していたら、運用中のログファイルがまるごと消えていたところでした。

# rmを実行する前に、lsで削除対象を必ず確認する(要注意:rmは実行後に取り消しできない) ls -la /var/log/webapp/access*.log # 出力を目視確認してから、正しいパターンで削除を実行 rm /var/log/webapp/access_2003*.log

この経験から、ワイルドカードを使った削除の前には必ず `ls` を実行する習慣がつきました。

2. サービスを停止する前に影響範囲を確認していなかった話

同じくSE時代、Apacheのチューニングのためにhttpdを再起動しようとした時のことです。

「ちょっとhttpdを再起動するだけだから」と思い、コマンドを入力しようとしたその瞬間、隣に座っていた先輩が「ちょっと待て、今日は月次バッチが動いてる時間じゃないか?」と声をかけてくれました。

確認してみると、確かに月次の売上集計バッチがhttpdを経由して外部APIにデータを送信している最中でした。あのまま再起動していたら、バッチが途中で切れ、集計データが欠損するところでした。

先輩がいたから助かりましたが、一人作業だったら気づかなかったはずです。セミナーで3,100名以上を指導してきた中で、こうした「他のシステムへの影響」を考慮しない作業ミスは非常に多いパターンです。

3. 設定ファイルを変更してからバックアップを忘れていたことに気づいた瞬間

Apacheの設定ファイル(httpd.conf)を変更した後、設定が正しく反映されているかを確認しようとした時のことです。

`apachectl configtest` を実行しようとして、ふと気づきました。「あれ、編集前にバックアップ取ったっけ?」

取っていませんでした。編集が成功していれば問題ないですが、万が一設定ファイルを壊していたら、元の状態に戻す手段がない状態でした。

幸い、その時は設定が正しく、configtestもOKでした。しかしこの「ヒヤリ」以来、設定ファイルを変更する前に必ずバックアップを取るようになりました。これが今でも続けている習慣の出発点です。

3つのヒヤリハットから身につけた確認習慣

1. 削除・変更前は「ls」や「echo」で対象を目視確認する

ワイルドカードを含む削除コマンドは、実行前に必ず `ls` で対象ファイルを確認してください。慣れてきた頃ほど省略しがちですが、省略した瞬間に事故が起きます。

# NG: ワイルドカードをそのまま実行(何が消えるか確認していない) rm /var/log/app/*.log # OK: まずlsで対象を確認してから実行する ls -la /var/log/app/*.log rm /var/log/app/*.log

同じ考え方で、`find -exec` コマンドも、いきなり削除せずにまず `find ... -print` で対象一覧を出してから実行することを習慣にしています。

私のセミナーでは「rmの前にls」を合言葉として覚えてもらっています。これだけで、ワイルドカードによる誤削除の大半を防ぐことができます。

2. 作業の「影響範囲」を着手前に書き出す

サービス停止・再起動・設定変更の前には、以下の3点を必ず確認してください。

連携しているサービス・システム:停止対象と通信しているものはないか
実行中の定期処理:バッチジョブやcronが走っていないか
作業時間帯の影響:業務時間中か、利用が集中する時間帯ではないか

「ちょっとした変更」でも、これを省略しないことが重要です。私が20年以上運用してきた中で、「こんな小さな変更がこんな影響を出すとは思わなかった」という事例は数え切れません。

連携サービスの確認には、以下のようなコマンドが役立ちます。

# 特定ポートへの接続を確認(対象サービスに何が接続しているかを把握する) ss -tnp | grep :80 # または netstat -tnp | grep :80

3. 「設定変更前バックアップ」をルーティン化する

設定ファイルを変更する前に、必ずバックアップを取るルーティンを持ってください。「後でバックアップを取ればいい」は、結局後回しになって忘れます。

# 設定ファイルを編集前に日付入りでバックアップ(例: httpd.conf) cp -p /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak.$(date +%Y%m%d) # バックアップできたことを確認してから編集を始める ls -la /etc/httpd/conf/httpd.conf*

日付を付けることで、「いつ変更したか」と「変更前の状態」が一目でわかります。復旧が必要になった時に、どの時点のバックアップに戻せばいいかを瞬時に判断できます。

定期的なバックアップ戦略については、rsyncコマンドでファイルを同期・転送する方法もあわせて参照してください。rsyncを使ってサーバー全体のバックアップを取る仕組みを導入しておくと、ファイル単体のバックアップをし忘れた場合の保険になります。

本記事のまとめ

ヒヤリハットは「失敗する前に気づけた貴重な学び」です。気づけたことに感謝して、その経験を確認習慣に変換しましょう。
ヒヤリハットの場面 防ぐための確認習慣
rmのワイルドカード削除 実行前に必ずls -laで対象ファイルを目視確認
サービス停止・再起動 影響範囲(連携サービス・バッチ等)を事前に書き出す
設定ファイルの変更 変更前に日付入りバックアップ(cp -p ファイル名 ファイル名.bak.日付
Linux本番作業で長く活躍するエンジニアは、「何事もなく終わった作業」の中にこそ、油断のタネを探す習慣を持っています。ヒヤリハットを「怖かったけど何もなかった」で終わらせず、確認習慣として積み上げていくことが、本番環境で信頼されるエンジニアへの道です。

本番作業の安全習慣についてさらに深く学びたい方は、Linuxの作業ミスを繰り返さない人がやっていることもあわせてご覧ください。

「ヒヤリハット」を繰り返さない確認習慣を、体系的に身につけませんか?

本番作業の事故は、知識不足より「確認の省略」と「習慣の欠如」が原因です。まずは体系的にまとめられた教材で、安全なサーバー運用の全体像を掴んでください。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。


Linux無料マニュアル(図解60P) 名前とメールで30秒登録