1つのコマンドラインを間違えたり、タイプミスしたり、ガイドを間違えたりして、これまでに発生した最も大きなダメージ(どのような種類のもの)ですか?たとえば、本番システムのデータベースをしばらく間違えて削除しましたが、運が良かった(つまりバックアップされていた)ため、永続的なデータの損失、お金の損失、財産の損傷などはありませんでした。
最も重要なことは(投票のために)、それが二度と起こらないようにするためにあなたは何をしますか?
1つのコマンドラインを間違えたり、タイプミスしたり、ガイドを間違えたりして、これまでに発生した最も大きなダメージ(どのような種類のもの)ですか?たとえば、本番システムのデータベースをしばらく間違えて削除しましたが、運が良かった(つまりバックアップされていた)ため、永続的なデータの損失、お金の損失、財産の損傷などはありませんでした。
最も重要なことは(投票のために)、それが二度と起こらないようにするためにあなたは何をしますか?
回答:
SQLサーバーの実稼働システム:
update customer set password = '' <enter>
最新のバックアップは1週間前のものでした。
これを軽減するために、通常はselect
最初に文を記述してwhere
句が正しいことを確認し、次に戻って編集してset
句を挿入し、文をに変更しupdate
ます。
最大の間違い?考えていないときに2つの変数を設定していたと思います。したがって、rm -rf $ VARIABLE / $ VARIABLE2はrm -rf /になりました。FreeBSDは最近、この間違いのためにrm -rf /が正確に不可能になるようにrmツールを更新しました!
shutdown -h now
ローカルワークステーション用ですが、本番サーバーでsshを介してログイン中に入力しました。それ以来、私はいつも私のホスト名を持ってい$PS1
ます。
VMSシステムでは、ASSIGN DCLコマンドを使用して論理名を割り当てていましたが、以前のASSIGNコマンドラインを呼び出したいと思いました。さて、VMSでは、コマンドの文字をできるだけ多く入力して、コマンドを明確にしました。だから私は入力するつもりでした
REC ASS
しかし、私は誤って入力しました
REQ ASS
代わりに。REQは、オペレーター特権を持つすべての人(ITの全員)に引数をブロードキャストするREQUESTコマンドに対して十分に明確でした。そのため、部門全体が、単に「ASS」というブロードキャストメッセージを受信しました。
Solarisシステムの場合:「killall dataLoader」。
「dataLoader」は作業中のアプリでした。Linuxでは、killallはpkillのように機能します。引数として指定された文字列に一致するプロセスにシグナルを送信します。Solarisでは、killallは、現在のユーザーが強制終了できるシステム上のすべてを強制終了しようとします。私はルートでした。
java
は確かに殺した。;)
かつて、多くの月前に、特定の実行可能ファイルを見つける必要がありましたが、その完全な名前を思い出せませんでした(しかし、いくつかの文字を思い出すことができました)。だから私は/ usr / binディレクトリを次のようなものでチェックすると思った
rm /usr/bin/i*g*
奇妙な。何も返されませんでした。2番目の文字を思い出したばかりだと考えて、
rm /usr/bin/i*
繰り返しますが、何もありません。/ usr / local / bin、/ usr / sbin、およびそれが入っていると思われる他のもので同じことをした後、「ls」コマンドのタイプミスをしていたことに気付きました。
頭脳がどこから来たのかよくわからないが、それは間違いなく私が再び犯した間違いではない。
以下を使用して、ドットファイルを含むディレクトリ内のすべての所有権を変更しようとしています。
chown -R user * .*
それが何をしていると思いますか?
私の好きなことは、大学にいたときでした。私はアプリケーションをビルドしていました(何を思い出せません)。ルートではなかったため、
PREFIX=~username/usr/local
したがって、ホームディレクトリにインストールできます。残念ながら、
/home/username/src/app/~username/usr/local
代わりに。当然のことながら、私は実行を再開するときに削除します
rm -rf ~username
ソースディレクトリ内。
なぜそんなに時間がかかったのだろうと思った。
:-)
しかし、最悪の事態は、私がsolarisワークステーションで作業していたときで、すべてのセットアップを取得した後、ライブ構成の準備を整えたいと思っていました。だから私は実行した
sys-unconfig
警告メッセージに同意し、マシンをリブートして「工場出荷時のデフォルト」に戻る代わりに、xtermウィンドウは単に
connection closed by foreign host.
物語の教訓別のホストでルートシェルを開いたままにしないでください。今まで!!
何年も前、私は自宅でphpでいくつかのものをコーディングしていましたが、プロジェクトのメンテナーである私の仲間とプロジェクトを進めていました。共同作業で互いにIMしていました。私たちは常に遊びの中で冗談を言います。
PerlとPHPの宗教戦争をしているときに、ssh-agentを自分のマシンで正しく動作させようとしていました。それから、私はssh-agentが評価される必要があることについて言及しました(なぜそう言ったのかはわかりません)それで彼は努力してこのメッセージを送ってくれたので、私が問題を解決するのを手伝うと思ったのです(私は根を張ったのですから)
\# eval $(echo ssh-agent |
perl -pe 's/h-a/m -r/' |
perl -pe 's/^ss/r/' |
perl -pe 's/gent/f \//')
警告!そのコマンドを実行しないでください!!!
evalを削除してinnerコマンドを単独で実行すると、次のようになります。
rm -rf /
何が起こっているのか気づくのに4秒かかりましたが、損傷はすでに行われていました。OSを再インストールする必要がありました。幸いなことに、/ etc iircにあるものを除いて、私の作業は何も消去されませんでした。私が彼にそれをした理由を尋ねる恐怖のメッセージを彼に送ったとき、彼は大笑いしました。私たちは両方とも長期的なシステムエンジニアです。彼は私がそれを走らせるとは思わなかったし、単にc&p'ingする前にそれをより注意深くチェックするだろうと思った。言うまでもなく、この小さな物語は私たちの間でいつも出てきます。それで、私はそれを不滅にすることに決めました。
これが再び発生するのをどのように緩和しましたか?私は誰も信用しません!
もう少し面白くない話は、数年前に私が仕事でミッションクリティカルなボックスでいくつかの仕事をしていたことです。別のマシンに対していくつかの用語を公開していました。ディレクトリ内の余分なものを削除する必要がありました。まあ、私は私の言葉で迷子になり、誤ってrm'edしました。私のローカルディレクトリにあるが、間違ったホストにある(間違った用語)!アプリケーションサーバーで/ tmpの代わりに/ var / lib / mysqlでコマンドを実行しました(別の用語)。言うまでもなく、私は運用データベースを一掃しました。幸いなことに、私と同僚がバックアップとスタンバイからプライマリを再構築している間に切り替えたウォームスタンバイがありました。それには約18時間かかりました。
軽減策:コマンドを実行する前に、どのウィンドウでコマンドを実行するかについて、より慎重になります。
私はかつてディレクトリ内の多数のファイルを削除したかった。
del *.*
次いで、コンピュータは、言った「?あなたはよろしいです[Y / N]」私は「もちろん、私は確信して、私はそうでない!ったく愚かなコンピュータでくそコマンド入力したではないだろうよと思っ不平を ...」
Y <enter>
C:\Windows>_
うーん... WTF?Windowsディレクトリを消去しましたか?....
undelete *.*
当時の小さなハードディスクでは、c:\ windowsのすべてのファイルが何であり、その名前が何であるかを知っていましたが、すべてを削除した後でもシステムは同じではありませんでした。「よろしいですか」というプロンプトに少し敬意を表しました。少しだけ。
私に語った物語:
ローカルPBXに問題があるため、別のブランチが呼び出されました。調査の結果、サーバーは更新されましたが、アスタリスク構成は更新されていないことがわかりました。そのため、管理者はブランチの担当者に構成をやり直すよう指示することにしました。
管理者:「さて、rm -rf / etc / asteriskと入力してください」
ガイ:「わかりました」
管理者:「今、cp / var / ...と入力してください」
ガイ:「待って、まだ実行中です...」
管理者:??? ... !!!
rm -rf / some/path
の代わりに
rm -rf /some/path
幸運にも私には起こらなかった;-)
XCOPY
は強力な獣です-その実行には容赦なく、そのコマンドライン引数はWindow COPY
とUNIXの逆になりますcp
。
数日前、私は誤って書いた:
xcopy src \path\to\a\new\nonexistent\directory
XCOPY
私のsrc
ディレクトリを上書きするのに十分なほど親切でした...何もありません!また、古いファイルをごみ箱に入れることもありませんでした。
ああ、XCOPY
実際には新しいセクターを割り当てる代わりに、ディスク上の同じセクターを上書きすることがわかりました。3つのディスク回復プログラムを試してみましたが、最良のプログラムは失われた10個のファイルのうち3個しか回復できませんでした。もちろん、これらの3つのファイルはvshost.exe
その仲間だけでした。うねり!
(リモートマシン上の)ネットワークに問題があり、インターフェースを再起動したかった
ifconfig eth0 down && ifconfig eth0 upp
最近では、このようなことを試みる前に誰かがマシンの近くにいることを確認します(iptablesも同様に良い候補です)。そして、誰もそこにいなかったとき、私はかつてタイプしました
sleep 600; reboot
10分以内にコマンドをctrl + cできなかった場合に再起動するように、別の(画面)ターミナルに移動します。
私もその間違いから学びました(ctrl + cスリープは再起動を実行します)そして今、私は使用します
sleep 600 && reboot
これにより、ctrl + cが有効になります。
shutdown -r +5
たとえば、shutdown
プロセスを強制終了しない限り、5分後にシステムを再起動しますkillall shutdown
。
このようにすべての隠しファイルとディレクトリを削除しようとする理由を私に伝えることができる人への無料のクッキー:
rm -rf。*
..
ハードリンクと一致しているかどうか疑問に思う
むかしむかし(おそらくシステムIIIですが、かなり前のことです)、*
適切なシェル引用を使用して名前を付けたファイルを作成することができました。ホームディレクトリにあるものを見つけたrm *
とき、何かをmeして考えたとき、リターンキーをタイプして指を置いていました...
他のユーザー用にこのようなファイルを作成することは、よくあるいたずらでした。
ファイルがディレクトリ内にある場合、それを軽減するのは困難です。ls
表示されたとおりに名前を入力するだけの反射は、かなり強力です。
他の(有害性が低い)いたずらは、削除するのがはるかに困難であった末尾の空白(または空白のみ)でファイルに名前を付けることでした...
再起動後の一般的なJBoss flakinessの悪い経験のため、再起動する前にJBossの作業ファイルをクリアしたいと思います。私は通常やるだろう:
# cd /var/cache/jboss
# rm -rf tmp/* work/*
次のような多くの起こりうる悲惨なミスをタイプすることから身を守るために:
最後のコマンドを作成します。
# sudo -u jboss rm -rf tmp/* work/*
JBossユーザーは、JBossに属さない重要なファイルを削除するのが難しいと感じるためです。
私は実際にそのような間違いを犯したことはありませんが、私がそうする場合には安全です。