最大のコマンドライン間違い?[閉まっている]


35

1つのコマンドラインを間違えたり、タイプミスしたり、ガイドを間違えたりして、これまでに発生した最も大きなダメージ(どのような種類のもの)ですか?たとえば、本番システムのデータベースをしばらく間違えて削除しましたが、運が良かった(つまりバックアップされていた)ため、永続的なデータの損失、お金の損失、財産の損傷などはありませんでした。

最も重要なことは(投票のために)、それが二度と起こらないようにするためにあなたは何をしますか?


9
これは世論調査なので、CW
Eddie

次に、なぜデフォルトでCWをポーリングしないのですか?
ルーク

4
彼らはそれが世論調査であるとどのように知る必要がありますか?
Mikeage 2009年

1
メカニズムがSOと同じである場合、たとえ質問を編集できたとしても、それをCWに変更することはできません。OPまたはモデレーターのみがそれを行うことができます。
カオス

9
良いアイデア-最も破壊的な間違いをインターネットに公開して、将来のすべての雇用者に見せてください!:)
サムシューテ

回答:


46

SQLサーバーの実稼働システム:

update customer set password = '' <enter>

最新のバックアップは1週間前のものでした。

これを軽減するために、通常はselect最初に文を記述してwhere句が正しいことを確認し、次に戻って編集してset句を挿入し、文をに変更しupdateます。


11
痛い。別のオプションは「BEGIN TRANSACTION」です。ロールバックできることを知ってうれしいです。:)
Murali Suriar 09年

5
2つの組み合わせで、count(*)を選択して、更新する予定の数を確認し、トランザクションで更新して更新します。カウントがコミットと一致する場合、そうでない場合はロールバックし、理由を見つけます。もちろん、「単純な」更新のためにそれを行うのではなく、それらは常にあなたを台無しにするものです。:-)
WaldenL 2009年

有罪、私はそれを自分でやった:(
ジムオハロラン2009年

8
ライブシステム(または他のユーザーが使用しているテストシステム)でBEGIN TRANSACTIONに注意してください-すぐにCOMMITまたはROLLBACKするか、トランザクションがロックを保持しているリソースのロックを待機している他のプロセスをデッドロックしてしまう可能性があります。
デビッドスピレット2009年

一部のシステムでは、次を作成できます。<enter>の代わりにステートメント完了識別子である
J. Polfer 09年

37

最大の間違い?考えていないときに2つの変数を設定していたと思います。したがって、rm -rf $ VARIABLE / $ VARIABLE2はrm -rf /になりました。FreeBSDは最近、この間違いのためにrm -rf /が正確に不可能になるようにrmツールを更新しました!


4
私が指摘したいのは、文を読み直して、rmの動作方法を変更した理由のよう思えますが、そうではありません。どうやら人々はスクリプトでrmを使用していて、同じことが起こり、フェイルセーフを追加したかったようです。
X-Istence

3
その後、投票を取り消します:)
コリンピカード

ある人がrm -rf / usr / local / junkを実行するのを見たことがあります...それは見ましたが、彼がEnterキーを押さないようにするのは間に合いませんでした。
悪魔のような子犬

「rm -rf /」の代わりに「rm -rf / *」はどうですか?今はBSDでどのように見えるかわかりませんが、動作するはずです;)
Ryszard Stawiarski

26
shutdown -h now 

ローカルワークステーション用ですが、本番サーバーでsshを介してログイン中に入力しました。それ以来、私はいつも私のホスト名を持ってい$PS1ます。


少なくとも、あなたはおそらく...任意のデータを失うことはないだろう
Zifre

確かに、それはかなり昔のことで、まだ普及していないIPMIやKVMoIPです。実際にそこに行ってスイッチを切り替えるには、技術者をつかまなければなりませんでした。
バルテック2009年

4
モリー・ガード(チェックアウトpackages.debian.org/search?keywords=molly-guard
デビッド・ホルム

ローカルワークステーションでも、念のため常に「+1」を使用しています。
msanford 09年

3
以前はホスト名をプロンプトに入力していましたが、現在はシャットダウン(および関連する-haltなど)コマンドにパッチを適用して、コマンドを実行する前に現在のマシン名を入力するように求めています。これにより、間違ったサーバーをシャットダウンしたことに気付くために必要な追加の手順が得られます。問題は、そのパッチを実装した後、それを二度と実行しなかったことです。しかし、同僚の数人が救われました:)
Moo

26

シャットダウンコマンドから-rを省略します。リモートサーバー上。国の反対側。リモートオフィスにITスタッフがいない。

私たちは皆それをやった、それはほとんどこの段階で通過儀礼の儀式のようだ。


25

VMSシステムでは、ASSIGN DCLコマンドを使用して論理名を割り当てていましたが、以前のASSIGNコマンドラインを呼び出したいと思いました。さて、VMSでは、コマンドの文字をできるだけ多く入力して、コマンドを明確にしました。だから私は入力するつもりでした

REC ASS

しかし、私は誤って入力しました

REQ ASS

代わりに。REQは、オペレーター特権を持つすべての人(ITの全員)に引数をブロードキャストするREQUESTコマンドに対して十分に明確でした。そのため、部門全体が、単に「ASS」というブロードキャストメッセージを受信しました。



1
誰もが知っているように、すべてのソフトウェアは吸い上げます。IT部門の誰かが他の何かを意味すると考える必要があるのはなぜですか?
アドリアーノヴァロリ広場

24

Solarisシステムの場合:「killall dataLoader」。

「dataLoader」は作業中のアプリでした。Linuxでは、killallはpkillのように機能します。引数として指定された文字列に一致するプロセスにシグナルを送信します。Solarisでは、killallは、現在のユーザーが強制終了できるシステム上のすべてを強制終了しようとします。私はルートでした。


そこに行って、それをやっ
ジェームズ

2
私は[OK]を、正確に、私は「killallを-9 javaの」:)しなかった...パワー5 AIX 6システムに同じ2週間前に正確に行ってきた
アンドール

3
@アンドール:まあ、あなたjavaは確かに殺した。;)
ボビー

16

かつて、多くの月前に、特定の実行可能ファイルを見つける必要がありましたが、その完全な名前を思い出せませんでした(しかし、いくつかの文字を思い出すことができました)。だから私は/ usr / binディレクトリを次のようなものでチェックすると思った

rm /usr/bin/i*g*

奇妙な。何も返されませんでした。2番目の文字を思い出したばかりだと考えて、

rm /usr/bin/i*

繰り返しますが、何もありません。/ usr / local / bin、/ usr / sbin、およびそれが入っていると思われる他のもので同じことをした後、「ls」コマンドのタイプミスをしていたことに気付きました。

頭脳がどこから来たのかよくわからないが、それは間違いなく私が再び犯した間違いではない。


これは、たとえばls / etc / something、Ctrl + r、Ctrl + a、Del、Del、cat、Enterなどのパスを再利用するときに注意する必要があるものです。
アレックス

8
私のサーバー上でも何も返しません。
ミルチャヴトコヴィチ


16

以下を使用して、ドットファイルを含むディレクトリ内のすべての所有権を変更しようとしています。

chown -R user * .*

それが何していると思いますか?


10
メールを読む-本当に速い???
Wiren

5
。があった、これは[^] *本当によくパターン私に教えて
マチェイPasternacki

1
@chaos:コマンドは、現在のディレクトリにあるすべてのものを削除しているようだ、とさえドットファイル
レオ・レオポルド・ヘルツ준 영

2
@chaos:..を削除しませ。あなたは単に間違っています。この動作を行う単一のUNIX実装を引用してください(私はこれまで見たことがなく、第7版unixのような超旧式なUnixの動作でもないことが文書化されています)。
クリス

1
./.*はこれを防ぎますか、それとも./../を介してディレクトリツリーに戻って伝播しますか?
tj111

15

/ dev / sdbを破壊するつもりです。幸いなことに、最新のバックアップがありました。

dd if=/dev/urandom of=/dev/sda

一度(/ dev / zeroを除く)、Linuxサーバーのルートパーティションを破壊し、同一サーバーからすべてコピーして回復しました。
マリウスゲドミナス

14
select * from <File1> join <file2>

プロダクションボックス。on句がないことに注意してください。:-)両方のテーブルは数百万行のテーブルであり、これは90年代半ばのAS / 400でSQLが実行された後、それを強制終了できませんでした。


14

データプロダクションサーバーの1つで、私のルートの1つが次のように入力しました。

chmod -R 777 /

彼はいくつかのスクリプトで権限エラーを取得していたため...

その後まもなく、彼の秘密鍵はすべてのサーバーから削除され、データプロダクションサーバーでの1TBのデータ復元を処理しました...


12

私の好きなことは、大学にいたときでした。私はアプリケーションをビルドしていました(何を思い出せません)。ルートではなかったため、

PREFIX=~username/usr/local

したがって、ホームディレクトリにインストールできます。残念ながら、

/home/username/src/app/~username/usr/local

代わりに。当然のことながら、私は実行を再開するときに削除します

rm -rf ~username

ソースディレクトリ内。

なぜそんなに時間がかかったのだろうと思った。

:-)

しかし、最悪の事態は、私がsolarisワークステーションで作業していたときで、すべてのセットアップを取得した後、ライブ構成の準備を整えたいと思っていました。だから私は実行した

sys-unconfig

警告メッセージに同意し、マシンをリブートして「工場出荷時のデフォルト」に戻る代わりに、xtermウィンドウは単に

connection closed by foreign host.

物語の教訓別のホストでルートシェルを開いたままにしないでください。今まで!!


私はPS1のホスト名に自分で行きます。ある時点で、ローカルログインとリモートログインに異なる色(およびユーザー/ルートに異なる色)を使用しました。
マリウスゲドミナス

12

何年も前、私は自宅で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時間かかりました。

軽減策:コマンドを実行する前に、どのウィンドウでコマンドを実行するかについて、より慎重になります。


職場では、すべてのサーバーの.bashrcを構成して、ユーザー名をbashで一意の色で表示しました。こうすることで、自分がどんなマシンであるかを瞬時に確認できます。(そう、20〜30台以上のマシンを管理していると問題になるかもしれません...しかし、それでも非常に便利です。)
fgysinはモニカを

誰も信頼しない場合は+1。
ウェインワーナー

11

ショートバージョン

#/bin/bash
$0&
$0

何それの価値のために、あなたがこれまでにないルート、走行としてそれを行う場合kill -9 -1
BCS

3
それは何をしますか?
ネイサン

6
それは、それが完了するのを待たずにバックグラウンドで自己であると呼び、再び自己であると呼びます:別名Fork Bomb
BCS

2
@Masi:コンピューターの速度が十分で、スクリプトの長さが十分でない場合。あなたはそれが起こることを知らない場合は特に。
ボイジャー

3
をドロップし#!/bin/bash、これはbashで最短フォークボムのコードゴルフに勝つと思います。
ジョーイアダムス

11

私はかつてディレクトリ内の多数のファイルを削除したかった。

del *.*

次いで、コンピュータは、言った「?あなたはよろしいです[Y / N]」私は「もちろん、私は確信して、私はそうでない!ったく愚かなコンピュータでくそコマンド入力したではないだろうよと思っ不平を ...」

Y <enter>

C:\Windows>_

うーん... WTF?Windowsディレクトリを消去しましたか?....

undelete *.*

当時の小さなハードディスクでは、c:\ windowsのすべてのファイルが何であり、その名前が何であるかを知っていましたが、すべてを削除した後でもシステムは同じではありませんでした。「よろしいですか」というプロンプトに少し敬意を表しました。少しだけ。


1
私はかつてまったく同じことをしました。システムを起動して再実行しましたが、まったく正しくありませんでした。約1週間後にシステムを再構築しました。
ジムオハロラン2009年

11

私がこれまでに行った中で最も愚かなことは、外部に面したファイアウォールクラスターのデフォルトルートを削除することだったと思います。

幸いなことに、それは計画的なダウンタイムとして指定された期間でした(念のため)が、それでファイアウォールをオンサイトに移動して再構成するための200マイルの往復を節約できませんでした。また、これにより、旅行中とその後の修正の間、インターネットに公開された本番システムを削除できませんでした。

私たちは皆、ナノ秒の定義を知っています。大秒はさらに小さく、「Enter」を押してから間違いを認識するまでの時間です。


11

最初の2つ...

Solarisボックスでは、AIXマシンのtarバックアップがありました。

入力した開発者の一人:

tax xvf AIX_Backup.tar

もちろん、税金の流れは絶対的なものであり、最終的にUNIXの新しいディストリビューションを作成しました... Solarix ...ディストリビューションの唯一の問題は、ブートしなかったことです:(


10

私に語った物語:

ローカルPBXに問題があるため、別のブランチが呼び出されました。調査の結果、サーバーは更新されましたが、アスタリスク構成は更新されていないことがわかりました。そのため、管理者はブランチの担当者に構成をやり直すよう指示することにしました。

管理者:「さて、rm -rf / etc / asteriskと入力してください」

ガイ:「わかりました」

管理者:「今、cp / var / ...と入力してください」

ガイ:「待って、まだ実行中です...」

管理者:??? ... !!!


1
何かがうまくいかない場合は、うまくいかないでしょう。
ジョーイアダムス

9
rm -rf / some/path 

の代わりに

rm -rf /some/path 

幸運にも私には起こらなかった;-)


私のクラスメートに最近起こりました。幸いにもそれだけでは/ etc /いくつか/その他/パスだった
Ikke

無効にする必要があります!今では多くのOSで無効になっていると思います。UbuntuのRM -rf /上、試すには余りにも恐れて
ラクシュマンプラサド

実際には、それだけではsudoのrm -rf /を使用してシステムに危険である
ボイジャー

...その行われ、そこにあった
fgysinのREINSTATEモニカ


8

これに沿ったもの:

sudo dd if=/dev/zero of=/dev/sda

私はsda4を意味しました。パーティションだけでなく、ディスク全体を消去しました:-(


行ったことがある 。
シャイニー氏と

8

XCOPYは強力な獣です-その実行には容赦なく、そのコマンドライン引数はWindow COPYとUNIXの逆になりますcp

数日前、私は誤って書いた:

xcopy src \path\to\a\new\nonexistent\directory

XCOPY私のsrcディレクトリを上書きするのに十分なほど親切でした...何もありません!また、古いファイルをごみ箱に入れることもありませんでした。

ああ、XCOPY実際には新しいセクターを割り当てる代わりに、ディスク上の同じセクターを上書きすることがわかりました。3つのディスク回復プログラムを試してみましたが、最良のプログラムは失われた10個のファイルのうち3個しか回復できませんでした。もちろん、これらの3つのファイルはvshost.exeその仲間だけでした。うねり!


8

(リモートマシン上の)ネットワークに問題があり、インターフェースを再起動したかった

ifconfig eth0 down && ifconfig eth0 upp

最近では、このようなことを試みる前に誰かがマシンの近くにいることを確認します(iptablesも同様に良い候補です)。そして、誰もそこにいなかったとき、私はかつてタイプしました

sleep 600; reboot

10分以内にコマンドをctrl + cできなかった場合に再起動するように、別の(画面)ターミナルに移動します。

私もその間違いから学びました(ctrl + cスリープは再起動を実行します)そして今、私は使用します

sleep 600 && reboot

これにより、ctrl + cが有効になります。


1
shutdown -r +5たとえば、shutdownプロセスを強制終了しない限り、5分後にシステムを再起動しますkillall shutdown
ジェラーン

1
Solarisでmihiのミスを犯した管理者を見ることができますが、(ミスから学習して)gelraenの代替手段を試します。
-outs

8
ifconfig eth0 down

おっと、私はeth0 の外部にいます。ウェブサーバーは、世界の反対側、鍵のかかった部屋にあります。ログインまたは再起動するネットワークアクセスなし。がらくた。


6

このようにすべての隠しファイルとディレクトリを削除しようとする理由を私に伝えることができる人への無料のクッキー:

rm -rf。*


1
コマンドは、現在のディレクトリの下のサブディレクトリも削除しますか?
レオレオポルドヘルツ

あなたのパターンが..ハードリンクと一致しているかどうか疑問に思う
ミルチャVutcovici

ところで、あなたは両方ともクッキーを獲得します:
マットシモンズ

6

実稼働Webサーバー上のホームフォルダーをクリーンアップするときに、サーバーのWebルートをホームフォルダー内の場所にシンボリックリンクしたことを忘れていました。考えていないが、私はそのフォルダでrm -rfを実行し、次に知っていることは、人々はWebサイトがダウンしていると言っている!

おっとっと!


5

私はかつて2つのフォルダーのデータを比較し、-dオプションを使用してrsyncを実行していました(ソースにない宛先のファイルを削除します)。そして、rsyncを実行したときにソースと宛先を切り替えました。バックアップしたい新しいファイルがすべて削除されました。今、-n(dry-run)でrsyncを実行することを学びました。

rsync -trvd --stats --progress /destination /source

バックアップがありませんでした。


4

むかしむかし(おそらくシステムIIIですが、かなり前のことです)、*適切なシェル引用を使用して名前を付けたファイルを作成することができました。ホームディレクトリにあるものを見つけたrm *とき、何かをmeして考えたとき、リターンキーをタイプして指を置いていました...

他のユーザー用にこのようなファイルを作成することは、よくあるいたずらでした。

ファイルがディレクトリ内にある場合、それを軽減するのは困難です。ls表示されたとおりに名前を入力するだけの反射は、かなり強力です。

他の(有害性が低い)いたずらは、削除するのがはるかに困難であった末尾の空白(または空白のみ)でファイルに名前を付けることでした...


2
それがGUIの目的です:)
Zifre 2009年

1
シェル補完は、これらの後続スペースファイルのリアルタイムセーバーです:)
Mr. Shiny and New安宇

1
これは約だったでしょう。1985年、ダイアルアップ経由またはVT-100端末のクローンからのRS-232ケーブル経由でアクセス。端末エミュレータではなく、実際の端末。私は当時cshが名前補完をしていたことを思い出しません... ;-)もちろん、GUIと名前補完は両方ともそれらのリスクを軽減します。ディスクセクターの編集...
RBerteig 09年

./--helpにタッチすると、rm --helpもrm *も機能しません...
mihi

少なくともLinuxでは、「touch ' '」という名前のファイルを作成できます。そして、 "RM '*'"も動作します...
sleske

4

再起動後の一般的なJBoss flakinessの悪い経験のため、再起動する前にJBossの作業ファイルをクリアしたいと思います。私は通常やるだろう:

# cd /var/cache/jboss
# rm -rf tmp/* work/*

次のような多くの起こりうる悲惨なミスをタイプすることから身を守るために:

  • / tmp / *
  • tmp / *
  • あなたはアイデアを得る

最後のコマンドを作成します。

# sudo -u jboss rm -rf tmp/* work/*

JBossユーザーは、JBossに属さない重要なファイルを削除するのが難しいと感じるためです。

私は実際にそのような間違いを犯したことはありませんが、私がそうする場合には安全です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.