Linuxエンジニアが古いサーバーを引き継いで学んだこと|技術的負債と向き合う現役講師の経験談

HOMEリナックスマスター.JP 公式ブログLinux学習ガイド > Linuxエンジニアが古いサーバーを引き継いで学んだこと|技術的負債と向き合う現役講師の経験談
宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「このサーバー、前任者が去って誰もドキュメントを残していないんですよ。触ったら壊れそうで……」
こういう状況で途方に暮れる気持ち、私自身が何度も経験してきました。

コメントのないcrontab、理由の分からない設定ファイル、動いているから触るなと言われた謎のプロセス——これらをまとめて「技術的負債」と呼びます。

この記事では、20年以上サーバーを運用してきた経験から、古いサーバーを引き継いだ時に何が起きるのか、どう向き合えばいいのかを正直に語ります。

この記事のポイント

・引き継ぎ直後はまず「今何が動いているか」を把握する
・設定変更前には必ずバックアップを取ってから行動する
・謎の設定は焦らず順序立てて調査すれば正体は掴める
・ドキュメントを残す習慣が次の引き継ぎを助ける贈り物になる


Linuxエンジニアが古いサーバーを引き継いで学んだこと|技術的負債と向き合う現役講師の経験談
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

「触るな」と言われた謎のプロセスの正体

SE時代(2001年~2006年)、私は客先のサーバーを引き継ぐ仕事を何度かしました。その中で最初に出会った壁が「誰も理由を知らないプロセス」です。

引き継ぎ時にこう言われました。

「このサーバー、変なプロセスが常時動いているけど、前任者に聞いても分からなかった。でも止めたら何か壊れそうで、ずっとそのままにしてある」

私がpsコマンドで確認すると、明らかに業務用途に見えない名前のプロセスが動いていました。lsofでファイルの使用状況を調べ、ネットワーク接続を確認し、最終的にはrpmでパッケージを照合して正体を突き止めました。結果は、5年前に入れた監視エージェントの残骸でした。もうサービスは終了していて、本来止めてよかったのです。

このエピソードで伝えたいのは一つだけです。「分からないから触れない」という状況こそ、最も危険だということです。

引き継いだ直後にやること

1. 今動いているサービスをすべてリストアップする

まず現状把握が優先です。以下のコマンドで稼働中のサービスを確認します。

# 稼働中のサービス一覧(systemd環境) systemctl list-units --type=service --state=running # 起動時に自動起動するサービス一覧 systemctl list-unit-files --type=service --state=enabled

私が実際に引き継いだサーバーで出力された結果の一部はこうでした(ホスト名・IPはマスク済み)。

UNIT LOAD ACTIVE SUB DESCRIPTION apache2.service loaded active running The Apache HTTP Server crond.service loaded active running Command Scheduler mysql.service loaded active running MySQL Community Server old-monitor.service loaded active running Legacy Monitor Agent postfix.service loaded active running Postfix Mail Transport Agent sshd.service loaded active running OpenSSH Daemon

このリストを見た瞬間、気になるのは `old-monitor.service` です。名前に「Legacy」とあり、最初の調査対象になりました。

2. crontabの内容を記録する

crontabは引き継ぎで最も漏れやすい項目の一つです。

# rootのcrontab crontab -l # システム全体のcron設定を確認 cat /etc/crontab ls /etc/cron.d/ ls /etc/cron.daily/ ls /etc/cron.hourly/

私が見てきた引き継ぎサーバーのcrontabには、コメントが一切なく、何曜日の何時に何をするのか、なぜその時間なのかが一切分からないものがありました。

受講生からも「引き継いだcrontabのコメントが全くなくて困っている」という相談を何度も受けてきました。この経験から、私はセミナーで必ず言うことがあります。「コメントを書かないcrontabは、6ヶ月後の自分に対する嫌がらせだ」と。

3. 設定ファイルのバックアップを取ってから調査する

引き継いだサーバーの状態を変えたくなることがありますが、その前に必ず元の状態をバックアップします。

# /etcディレクトリ全体のバックアップ tar czf /root/etc_backup_$(date +%Y%m%d).tar.gz /etc/ # バックアップ確認 ls -lh /root/etc_backup_*.tar.gz

たったこれだけで、万が一設定を壊しても元に戻せます。20年の運用経験の中で、バックアップを取らずに設定変更して困った場面を私自身も経験していますし、セミナー受講生からも同様の失敗談を数えきれないほど聞いてきました。

技術的負債と向き合う姿勢

「全て分かってから変える」は幻想

引き継いだサーバーを完全に理解するまで変更しない、という考え方は理想的ですが、現実的ではありません。特に古いサーバーは、完全に理解しようとすると半年かかっても分からないことがあります。

私が現場で学んだのは「小さく理解して、小さく変える」という方法です。

・一度に大きく変えない
・変える前には必ず記録
・変えた後には必ず動作確認
・変更内容は必ずコメントとして残す

この4点を守るだけで、引き継ぎサーバーの技術的負債は少しずつ整理されていきます。

前任者を責めない

引き継いだサーバーがひどい状態でも、前任者を責えたくなる気持ちは理解できますが、そこで立ち止まることをすすめます。

前任者も当時の環境・制約の中で最善を尽くしていたはずです。ドキュメントが残っていないのは、残す時間がなかったのかもしれない。謎の設定があるのは、当時の事情があったのかもしれない。

責える時間があれば、その時間を状況の把握と改善に使う方が生産的です。

「引き継ぎを受ける技術」を磨く

実はこれ、多くのエンジニアが軽視している技術の一つです。新しいコマンドを覚えることよりも、既存のサーバーを安全に読み解く力の方が、現場では何倍も役に立ちます。

私がセミナーでよく使う言葉があります。「Linuxの設定ファイルは過去の意思決定の記録だ」。

/etc/hosts に謎のエントリがあれば、それはかつて誰かが何かの理由で追加したもの。/etc/cron.d/ に謎のジョブがあれば、それは誰かが必要だと判断したもの。その背景を読み解こうとする姿勢が、エンジニアとしての理解力を深めます。

よくあるトラブルと対処法

「サービスが止まった」と言われた時の確認手順

引き継いだ直後の最も怖いトラブルが「突然サービスが止まった」という状況です。パニックにならず、以下の順番で確認します。

# 1. サービスの状態を確認 systemctl status apache2.service # 2. ログを確認(直近50行) journalctl -u apache2.service -n 50 # 3. プロセスが残っていないか確認 ps aux | grep apache

journalctl の出力に「Cannot assign requested address」のようなエラーが出ていれば、ポートやIPアドレスの設定が変わっている可能性があります。その場合は設定ファイルを確認します。

# Apacheの設定ファイルを確認 grep -r "Listen\|ServerName\|VirtualHost" /etc/apache2/ 2>/dev/null # または(RHEL系) grep -r "Listen\|ServerName\|VirtualHost" /etc/httpd/ 2>/dev/null

注意: 引き継いだ直後は「自分が何かを壊したのでは」と焦りがちですが、引き継ぎ前から潜在していた問題が表面化するケースがほとんどです。落ち着いてログを読むことが重要です。

「crontabのジョブが動いていない」と気づいた時

引き継いだcrontabのジョブが実は数ヶ月前から動いていなかった、というトラブルも現場では珍しくありません。

# cronのログを確認 journalctl -u cron --since "7 days ago" | grep -E "CRON|CMD" # または /var/log/cron を確認(RHEL系) tail -100 /var/log/cron | grep -E "CRON|CMD"

cronが動いていない原因は、スクリプトのパスが変わっていた、権限が変更されていた、などが多いです。cronジョブに関するより詳しい切り分け手順は「cronのログを確認する方法」も参考にしてください。

引き継ぎを受けた後に整理すること

状況の把握が一通り終わったら、以下を整理することをすすめます。
確認項目 コマンド例
稼働中のサービス確認 systemctl list-units --state=running
開いているポート確認 ss -tlnp
cron設定の確認 crontab -l
ディスク使用状況確認 df -h
OSバージョン確認 cat /etc/os-release
インストール済みパッケージ rpm -qa
これらを一通り記録してドキュメント化するだけで、次の引き継ぎが格段に楽になります。自分がいつか去る日のことを考えれば、今のドキュメントが次の人への贈り物になります。

サーバーの状態確認コマンドをまとめた記事「Linuxサーバーのシステム情報をまとめて把握する方法」もあわせて参照してください。

まとめ

古いサーバーの引き継ぎは、エンジニアとして最も成長できる機会の一つです。謎の設定を読み解く過程で、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秒登録