一人情シスのつぶやき

名古屋の中小企業で一人情シスをしている作者が、日々の業務で思うことをつぶやきます。

rm /* やってしまった

やってしまいました。

rm ${HOGE}/*

HOGEが未定義のため、ルートディレクトリのファイルが全削除。 幸い、rfオプションは付けていなかったので、消されたのはファイルのみ。

CentOS7において、ルートディレクトリに存在するファイルは以下のシンボリックリンク

  • /bin -> /usr/bin
  • /lib -> /usr/lib
  • /lib64 -> /usr/lib64
  • /sbin/ -> /usr/sbin

組み込み系のコマンドしかまともに動作せず、/usr/binフォルダに移動してコマンドを実行しても

-bash: /usr/bin/ln: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter:

となってしまう...

なんとかググって見つけた以下のサイト

ja.stackoverflow.com

# /usr/lib64/ld-linux-x86-64.so.2 --library-path /usr/lib64 /usr/bin/ln -s /usr/lib64 /lib64
# /usr/bin/ln -s /usr/bin /bin
# ln -s /usr/lib /lib
# ln -s /usr/lib64 /lib64
# ln -s /usr/sbin /sbin

上記コマンドで復旧した。神!! 感謝!!! 死ぬほど焦った...

今覚えば、/usr/bin/busyboxを使えばよかったのかもしれない。

ちなみに、shebangにて

#!/bin/bash -eu

とやっていたのだが、該当ファイルを/bin/bashの引数で呼び出したので効いていなかった... shebangではなく本文中にset -euと書くことが大事だと、死ぬほど理解した.