レガシー技術万歳

業務上設定中のサーバーで、大ポカをやり、/usr/lib と /usr/local/lib が吹き飛んだSolaris が一台出来上がり。

SSHでのログイン済みのターミナル一枚(root取得済み)が命綱。

新規にtelnetsshftpも受けられず、仕掛けられず……

頭の痛い状況を起こしてしまいました。

外部にFTPを掛けられれば、色々手はあるでしょうに……インストールメディアは現在所在不明(担当者休暇中)。

ネットワーク内に同一のOSはいるので、そこからファイルを転送出来れば復元出来そうなのですが、FTPもSCPもダメなのです。


ふと、頭にMIME普及以前のコマンドがよぎりました。

uuencode/uudecode

果たして、このコマンドは動きました。

そうなれば話は簡単です。

  1. cd /usr/lib
  2. 次のコマンドを入力(エンターを押さない)
  3. uuencode hogehoge.so.1 < hogehoge.so.1
  4. ターミナルソフトのログ取得機能でログ採取開始
  5. エンターキーを押す
  6. 画面に昔懐かしい begin 644 hogehoge.so.1 云々 な文字列がスクロールする。
  7. ログ採取終了
  8. エディタでログを開く
  9. begin のある行から最後まで選択してコピー
  10. 復旧したいサーバーの/usr/lib に移動
  11. uudecode (実行)
  12. ターミナルに先程のコピー内容を『張り付け』
  13. スクロールして、コマンドプロンプトが帰ってきたらご覧じろ。
  14. ls

hogehoge.so.1


これ、古い時代のファイルコピーの手法です。
動かないコマンドが要求するライブラリーをちまちまこの手でコピーしたところ、外部にFTPが掛けられるところまで復元しました。

ここまで来れば、コピー元でtarで固めたlib一式をFTPでgetして展開すれば復元です。

/usr/local/lib 後からゆっくりと……

あぁ、レガシー技術万歳!