ความผิดพลาดของบรรทัดคำสั่งที่ใหญ่ที่สุด? [ปิด]


35

อะไรคือความเสียหายมากที่สุด (ไม่ว่าชนิดใดก็ตาม) ที่คุณเคยเกิดจากบรรทัดคำสั่งที่เข้าใจผิด / พิมพ์ผิด / เข้าใจผิด? ฉันลบฐานข้อมูลระบบการผลิตโดยไม่ได้ตั้งใจกลับมาเป็นเวลานาน แต่ฉันโชคดี (เช่นสำรองข้อมูล) และไม่มีการสูญเสียข้อมูลถาวรสูญเสียเงินเกิดความเสียหายต่อทรัพย์สิน ฯลฯ

ที่สำคัญที่สุด (สำหรับการลงคะแนน) คุณจะทำอย่างไรเพื่อให้แน่ใจว่าจะไม่เกิดขึ้นอีกครั้ง?


9
เนื่องจากนี่เป็นแบบสำรวจความคิดเห็นจึงควรเป็น CW
Eddie

ถ้าเช่นนั้นทำไมโพล CW ถึงไม่เป็นค่าเริ่มต้น
ลุ

4
พวกเขาควรรู้ได้อย่างไรว่าแบบสำรวจความคิดเห็นเป็นเรื่องเป็นราว
Mikeage

1
หากกลไกเหมือนกันกับของ SO แม้ว่าคุณจะสามารถแก้ไขคำถามคุณไม่สามารถเปลี่ยนเป็น CW ได้ เฉพาะ OP หรือผู้ดูแลเท่านั้นที่สามารถทำได้
ความสับสนวุ่นวาย

9
ความคิดที่ดี - โพสต์ความผิดพลาดที่ร้ายแรงที่สุดของคุณต่อสาธารณะทางอินเทอร์เน็ตเพื่อให้นายจ้างในอนาคตได้เห็น! :)
Sam Schutte

คำตอบ:


46

ในเซิร์ฟเวอร์ SQL บนระบบที่ใช้งานจริง:

update customer set password = '' <enter>

การสำรองข้อมูลล่าสุดเป็นเหมือนหนึ่งสัปดาห์

เพื่อบรรเทานี้ผมมักจะเขียนselectคำสั่งแรกเพื่อให้แน่ใจว่าฉันมีwhereข้อที่ถูกต้องจากนั้นกลับไปและแก้ไขมันให้ใส่ประโยคและเปลี่ยนแปลงคำสั่งไปsetupdate


11
อุ๊ยตาย ตัวเลือกอื่นจะเป็น 'เริ่มต้นการทำธุรกรรม'; ยินดีที่ได้ทราบว่าคุณสามารถย้อนกลับได้ :)
Murali Suriar

5
การรวมกันของทั้งสองเลือกนับ (*) เพื่อดูจำนวนที่ฉันคิดว่าฉันจะอัปเดตแล้วอัปเดตในธุรกรรมเพื่อทำการอัปเดต หากการนับตรงกันตรงกันถ้าไม่ย้อนกลับและหาสาเหตุ แน่นอนว่าฉันไม่ได้ทำเช่นนั้นสำหรับการอัปเดต "ง่าย" และสิ่งเหล่านั้นเป็นสิ่งที่ทำให้คุณสับสน :-)
WaldenL

ผิดที่ฉันได้ทำว่าตัวเอง :(
จิม OHalloran

8
ระมัดระวังการทำธุรกรรมเริ่มต้นบนระบบจริง (หรือระบบทดสอบที่ใช้โดยผู้อื่นด้วย) - ให้แน่ใจว่าคุณกระทำการหรือย้อนกลับในไม่ช้าหรือคุณอาจจบกระบวนการ deadlock กระบวนการอื่น ๆ ที่รอการล็อคทรัพยากรของคุณ
David Spillett

ในบางระบบคุณสามารถทำได้ เป็นตัวระบุความสมบูรณ์ของข้อความแทนที่จะเป็น <enter>
J. Polfer

37

ความผิดพลาดที่ใหญ่ที่สุด? คิดว่าฉันได้ตั้งค่าตัวแปรสองตัวเมื่อฉันไม่มี ดังนั้น rm -rf $ VARIABLE / $ VARIABLE2 กลายเป็น rm -rf / FreeBSD เพิ่งปรับปรุงเครื่องมือ rm ของพวกเขาเพื่อให้ rm -rf / เป็นไปไม่ได้อีกต่อไปอย่างแม่นยำเพราะความผิดพลาดนี้!


4
ฉันอยากจะชี้ให้เห็นการอ่านประโยคของฉันอีกครั้งดูเหมือนว่าฉันเป็นเหตุผลในการเปลี่ยนวิธีการทำงานของ rm นี่ไม่ใช่กรณี เห็นได้ชัดว่าผู้คนกำลังใช้ rm ในสคริปต์และสิ่งเดียวกันก็เกิดขึ้นและพวกเขาต้องการเพิ่มความล้มเหลว
X-Istence

3
ฉันถอนคะแนนของฉันแล้ว :)
โคลิน Pickard

ฉันเคยเห็นผู้ชายคนหนึ่งทำ rm -rf / usr / local / junk ... ฉันเห็น แต่ไม่ใช่ในเวลาที่จะป้องกันไม่ให้เขากดปุ่มเข้า
Satanicpuppy

แล้ว "rm -rf / *" แทนที่จะเป็น "rm -rf /"? ฉันไม่ทราบว่าลักษณะของ BSD จะเป็นอย่างไร แต่ควรทำงาน;)
Ryszard Stawiarski

26
shutdown -h now 

มีความหมายสำหรับเวิร์กสเตชันท้องถิ่น แต่พิมพ์ในขณะที่บันทึกผ่าน ssh บนเซิร์ฟเวอร์ที่ใช้งานจริง $PS1ตั้งแต่นั้นมาผมมักจะมีชื่อโฮสต์ในของฉัน


อย่างน้อยคุณอาจจะไม่สูญเสียข้อมูลใด ๆ ...
Zifre

จริง แต่นานมาแล้ว IPMI หรือ KVMoIP ที่ยังไม่ได้รับความนิยม เราต้องจับช่างไปที่นั่นจริง ๆ แล้วพลิกสวิตช์
vartec

4
ตรวจสอบมอลลี่ยาม ( packages.debian.org/search?keywords=molly-guard )
เดวิดโฮล์ม

แม้แต่ในพื้นที่ทำงานฉันยังใช้ "+1" เสมอ
msanford

3
ฉันเคยใส่ชื่อโฮสต์ในพรอมต์ แต่ตอนนี้ฉันได้แก้ไขคำสั่งปิด (และ - halt et al) ที่เกี่ยวข้องเพื่อให้ฉันป้อนชื่อเครื่องปัจจุบันก่อนที่มันจะรันคำสั่ง นั่นทำให้ฉันมีขั้นตอนพิเศษที่จำเป็นในการตระหนักว่าฉันเพิ่งปิดเซิร์ฟเวอร์ผิด ปัญหาคือเมื่อผมนำมาใช้แพทช์ที่ผมไม่เคยทำมันอีกครั้ง - แต่บันทึกของไม่กี่ของเพื่อนร่วมงานของฉันสรรพสินค้าใหญ่ :)
หมู่ที่

26

การข้าม -r จากคำสั่ง shutdown บนเซิร์ฟเวอร์ระยะไกล ในอีกด้านหนึ่งของประเทศ ไม่มีพนักงานไอทีในสำนักงานระยะไกล

เราทุกคนทำมันเกือบจะเป็นเหมือนพิธีกรรมในขั้นตอนนี้


25

บนระบบ VMS ฉันได้ใช้คำสั่ง ASSIGN DCL เพื่อกำหนดชื่อโลจิคัลและฉันต้องการเรียกคืนบรรทัดคำสั่ง ASSIGN ก่อนหน้านี้ ตอนนี้ใน VMS คุณพิมพ์อักขระได้มากเท่าของคำสั่งเพื่อทำให้ชัดเจน ดังนั้นฉันตั้งใจจะพิมพ์

REC ASS

แต่ฉันพิมพ์โดยไม่ตั้งใจ

REQ ASS

แทน. REQ นั้นไม่น่าแปลกใจสำหรับคำสั่ง REQUEST ซึ่งออกอากาศการโต้เถียงกับทุกคนด้วยตัวดำเนินการ privs (ซึ่งก็คือทุกคนใน IT) ดังนั้นแผนกทั้งหมดจึงได้รับข้อความออกอากาศซึ่งก็คือ "ASS"


เฮฮา :-) :-)
Ludwig Weinzierl

1
ซอฟแวร์ทั้งหมดดูดตามที่เราทุกคนรู้ ทำไมทุกคนใน IT ถึงคิดว่ามันมีความหมายอย่างอื่น
Adriano Varoli Piazza

24

บนระบบโซลาริส: "killall dataLoader"

'dataLoader' เป็นแอพที่ฉันทำงานอยู่ บน Linux killall สามารถทำงานได้เหมือน pkill มันส่งสัญญาณไปยังกระบวนการที่ตรงกับสตริงที่กำหนดเป็นอาร์กิวเมนต์ บน Solaris, killall จะพยายามฆ่าทุกอย่างในระบบที่ผู้ใช้ปัจจุบันสามารถฆ่าได้ ฉันรูต


รับนั่นทำที่ ...
เจมส์

2
ฉันได้ทำสิ่งเดียวกันสองสัปดาห์ที่ผ่านมาในระบบ Power 5 AIX 6 ... ตกลงไม่แน่นอนฉันทำ "killall -9 java" :)
Andor

3
@Andor: ดีคุณฆ่าjavaแน่นอน ;)
Bobby

16

ครั้งหนึ่งหลายดวงจันทร์ที่ผ่านมาฉันจำเป็นต้องค้นหาสิ่งที่ปฏิบัติการได้เฉพาะ แต่จำชื่อไม่ได้เลย (แต่จำได้ไม่กี่ตัวอักษร) ดังนั้นฉันคิดว่าฉันจะตรวจสอบไดเรกทอรี / usr / bin กับสิ่งนี้

rm /usr/bin/i*g*

แปลก. ไม่มีอะไรกลับมา เมื่อคิดว่าฉันเพิ่งจำตัวอักษรตัวที่สองผิดฉันลองอีกครั้ง

rm /usr/bin/i*

ไม่มีอะไรอีกแล้ว หลังจากทำเช่นเดียวกันกับ / usr / local / bin, / usr / sbin และสิ่งอื่นที่ฉันคิดว่ามันอาจจะอยู่ในฉันรู้ว่าฉันได้รับการพิมพ์ผิดคำสั่ง 'ls'

ไม่ค่อยรู้ว่าสมองมาจากไหน แต่มันก็ไม่ใช่ความผิดพลาดที่ฉันเคยทำอีกครั้งแน่นอน


นี่คือสิ่งที่เราควรระวังเมื่อใช้เส้นทางใหม่เช่นพูด ls / etc / something, Ctrl + r, Ctrl + a, Del, Del, cat, Enter
Alex

8
แม้บนเซิร์ฟเวอร์ของฉันก็ไม่ได้ส่งคืนสิ่งใด
Mircea Vutcovici


16

พยายามเปลี่ยนความเป็นเจ้าของทุกสิ่งในไดเรกทอรีรวมถึงจุดไฟล์ด้วย:

chown -R user * .*

คาดเดาสิ่งที่ทำ


10
อ่านอีเมลได้อย่างรวดเร็วจริง ๆ ???
Wiren

5
เคยมีนี้สอนฉัน [^.] * รูปแบบดีจริงๆ.
Maciej Pasternacki

1
@chaos: คำสั่งดูเหมือนว่าจะลบทุกอย่างในไดเรกทอรีปัจจุบันของคุณและแม้กระทั่งไฟล์ดอท
LéoLéopold Hertz 준영

2
@chaos: มันไม่ได้ลบ .. และไม่เคยมีและไม่เคยจะ คุณเข้าใจผิด โปรดอ้างอิงถึงการใช้งานยูนิกซ์เดี่ยวที่มีพฤติกรรมนี้ (ซึ่งฉันไม่เคยเห็นมาก่อนและมีการบันทึกไว้ว่าไม่เป็นพฤติกรรมของยูนิกซ์ที่มีความโบราณมากเช่นยูนิกซ์รุ่นที่ 7)
chris

1
./.* จะป้องกันสิ่งนี้หรือไม่หรือจะเผยแพร่แบ็คอัพไดเรกทอรีผ่านทาง. /../?
tj111

15

หมายถึงทำลาย / dev / sdb โชคดีที่ฉันมีการสำรองข้อมูลที่ทันสมัย

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

ทำครั้งเดียว (ยกเว้นด้วย / dev / ศูนย์) ทำลายพาร์ติชันรูทของเซิร์ฟเวอร์ Linux กู้คืนได้โดยการคัดลอกทั้งหมดกลับจากเซิร์ฟเวอร์ที่เหมือนกัน
Marius Gedminas

14
select * from <File1> join <file2>

บนกล่องผลิต สังเกตการขาดonประโยค :-) ตารางทั้งสองเป็นตารางหลายล้านแถวและนี่คือ AS / 400 ในช่วงกลางยุค 90 ซึ่งครั้งหนึ่ง SQL กำลังทำงานอยู่คุณจะไม่สามารถฆ่ามันได้


14

บนหนึ่งในเซิร์ฟเวอร์การผลิตข้อมูลของเราหนึ่งในรากของฉันพิมพ์:

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.

คุณธรรมของเรื่องราวอย่าเปิดเปลือกรูทไว้บนโฮสต์อื่น! EVER !!


ฉันไปหาชื่อโฮสต์ใน PS1 ด้วยตัวเอง เมื่อถึงจุดหนึ่งฉันใช้สีที่แตกต่างกันสำหรับการล็อกอินในพื้นที่และระยะไกล (รวมถึงสีที่แตกต่างกันสำหรับผู้ใช้ / รูท)
Marius Gedminas

12

หลายปีที่ผ่านมาฉันอยู่ที่บ้านเขียนโค้ดบางอย่างเป็น php ในขณะที่ทำงานกับโปรเจ็กต์กับเพื่อนของฉันซึ่งเป็นผู้ดูแลโครงการ เรากำลังสนทนากันเองในความร่วมมือ เราล้อเล่นไปมาเสมอ

ฉันพยายามทำให้ ssh-agent ทำงานอย่างถูกต้องบนเครื่องของฉันในขณะที่เรามีสงครามศาสนาของ Perl กับ PHP จากนั้นฉันพูดถึงบางสิ่งเกี่ยวกับ ssh-agent ซึ่งจำเป็นต้องได้รับการประเมิน (ไม่แน่ใจว่าทำไมฉันจึงพูดอย่างนั้น) ดังนั้นเขาจึงส่งข้อความนี้มาให้ฉันดังนั้นฉันจึงคิดว่าจะช่วยฉันแก้ปัญหาของฉัน (โปรดจำไว้ว่าฉันเป็นคนรูท):

\# eval $(echo ssh-agent | 
perl -pe 's/h-a/m -r/' | 
perl -pe 's/^ss/r/' | 
perl -pe 's/gent/f \//')

คำเตือน! อย่าเรียกใช้คำสั่งนั้น !!!

หากคุณลบ eval และรันคำสั่งด้านในด้วยตัวเองมันคือ:

rm -rf /

ฉันใช้เวลาทั้งหมด 4 วินาทีในการสังเกตว่าเกิดอะไรขึ้น แต่ความเสียหายได้ทำไปแล้ว ฉันต้องติดตั้งระบบปฏิบัติการใหม่ โชคดีที่ไม่มีงานของฉันถูกลบออกยกเว้นบางสิ่งใน / etc iirc เขาหัวเราะขนาดใหญ่เมื่อฉันส่งข้อความถึงสยองขวัญถามเขาว่าทำไมเขาถึงทำอย่างนั้น เราเป็นทั้งวิศวกรระบบระยะยาว เขาไม่คิดว่าฉันจะเรียกใช้และจะระมัดระวังในการตรวจสอบเพิ่มเติมก่อนที่จะทำและฉันก็เชื่อใจเขาดังนั้นฉันจึงไม่ได้คิดว่าเขากำลังเล่นอยู่ จำเป็นต้องพูดเรื่องเล็ก ๆ น้อย ๆ นี้เกิดขึ้นตลอดเวลาระหว่างเรา ดังนั้นฉันตัดสินใจที่จะทำให้เป็นอมตะ

ฉันจะบรรเทาปัญหานี้ได้อย่างไรจากการเกิดขึ้นอีกครั้ง? ฉันไม่ไว้ใจใครเลย!

เรื่องราวที่น่าสนใจอีกเรื่องหนึ่งคือเมื่อสองสามปีก่อนที่ฉันกำลังทำภารกิจสำคัญในที่ทำงาน ฉันมีเงื่อนไขสองสามข้อที่เปิดไปยังเครื่องอื่น ฉันต้องการลบบางสิ่งที่ฟุ่มเฟือยในไดเรกทอรี ดีฉันได้หายไปในแง่ของฉันและ rm'ed ใน dir ท้องถิ่นของฉัน แต่ผิดโฮสต์ (ผิดระยะ) !! ฉันรันคำสั่งใน / var / lib / mysql แทนที่จะเป็น / tmp บนแอ็พพลิเคชันเซิร์ฟเวอร์ (คำอื่น) ไม่จำเป็นต้องบอกว่าฉันลบฐานข้อมูลการผลิตออกไปแล้ว โชคดีที่เรามีโหมดแสตนด์บายที่อบอุ่นในขณะที่ฉันและเพื่อนร่วมงานสร้างหลักจากการสำรองข้อมูลและสแตนด์บาย ใช้เวลาทำประมาณ 18 ชั่วโมง

การบรรเทาผลกระทบ: ระวังให้ดีขึ้นเกี่ยวกับหน้าต่างที่ฉันเรียกใช้คำสั่งก่อนที่จะดำเนินการ


ที่ทำงานเราทุกคนกำหนดค่า. bashrc ของเซิร์ฟเวอร์ทั้งหมดของเราเพื่อแสดงชื่อผู้ใช้ในการทุบตีในสีที่ไม่ซ้ำกัน ด้วยวิธีนี้คุณจะเห็นได้ในทันทีว่าคุณเป็นเครื่องจักรอะไร (ตกลงว่าอาจกลายเป็นปัญหาเมื่อคุณจัดการมากกว่า 20-30 เครื่อง ... แต่ก็ยังมีประโยชน์มาก)
fgysin คืนสถานะให้โมนิก้า

+1 สำหรับความน่าเชื่อถือไม่มีใคร
Wayne Werner

11

รุ่นสั้น

#/bin/bash
$0&
$0

สำหรับสิ่งที่คุ้มค่าถ้าคุณเคยทำอย่างนั้นไม่ได้เป็นรากรันkill -9 -1
BCS

3
มันทำอะไร
Nathan DeWitt

6
มันเรียกว่ามันเป็นตัวเองในพื้นหลังกว่านั้นโดยไม่ต้องรอให้จบเรียกมันว่าตัวเองอีกครั้ง: aka Fork Bomb
BCS

2
@Masi: ไม่ได้ถ้าคอมพิวเตอร์เร็วพอและสคริปต์ยาวพอ พิเศษถ้าคุณไม่รู้ว่ามันจะเกิดขึ้น
รอบโลก

3
ดร็อป#!/bin/bashและฉันคิดว่านี่จะเป็นแชมป์กอล์ฟรหัสสำหรับ forkbomb ที่สั้นที่สุดในการทุบตี
Joey Adams

11

ฉันเคยต้องการที่จะลบไฟล์ในไดเรกทอรี

del *.*

จากนั้นคอมพิวเตอร์ก็พูดว่า "คุณแน่ใจเหรอ? [y / N]" ฉันคิดว่า "แน่นอนว่าฉันแน่ใจว่าฉันจะไม่พิมพ์คำสั่งยี้! มิฉะนั้น Sheesh คอมพิวเตอร์โง่ก็บ่น ... "

Y <enter>

C:\Windows>_

อืม ... WTF? ฉันเพิ่งลบไดเรกทอรี windows ของฉันหรือไม่ ....

undelete *.*

ในสมัยของฮาร์ดดิสก์ขนาดเล็กฉันรู้ว่าทุกไฟล์ใน c: \ windows มีไว้เพื่ออะไรและชื่อของมันคืออะไร แต่ถึงแม้ว่าหลังจากยกเลิกการลบทุกอย่างแล้วระบบก็ยังไม่เหมือนเดิม ฉันได้รับความเคารพเล็กน้อยสำหรับพร้อมท์ "คุณแน่ใจ" แค่นิดหน่อย.


1
ฉันเคยทำสิ่งเดียวกัน ฉันได้รับระบบในการบูตและเรียกใช้อีกครั้ง แต่มันก็ไม่ถูกต้องอีกเลย ฉันสร้างระบบอีกครั้งในอีกหนึ่งสัปดาห์ต่อมา
Jim OHalloran

11

ฉันคิดว่าสิ่งที่โง่ที่สุดที่ฉันเคยทำก็คือการลบเส้นทางเริ่มต้นออกจากไฟร์วอลล์ภายนอกที่หันเข้าหากลุ่ม - ในขณะที่ vpn'ed ไปยังเดสก์ท็อปของฉันอยู่ห่างออกไปหลายร้อยไมล์

โชคดีที่มันอยู่ในช่วงเวลาที่กำหนดให้เป็นการหยุดทำงานตามแผนที่วางไว้ (ในกรณี) แต่นั่นไม่ได้ช่วยฉันในการเดินทางไปกลับ 200 ไมล์เพื่อไปและตั้งค่าไฟร์วอลล์ในที่อื่น มันก็ไม่ได้ช่วยให้สิ่งนี้นำระบบการผลิตทางอินเทอร์เน็ตของเราเปิดเผยในช่วงระยะเวลาของการเดินทางของฉันและการแก้ไขในภายหลัง

เราทุกคนรู้คำจำกัดความของนาโนวินาที โอโนะวินาทีนั้นยิ่งเล็กลงและเป็นเวลาระหว่างการกดปุ่ม 'Enter' และตระหนักถึงความผิดพลาดของคุณ


11

แรกของสอง ...

ในกล่อง Solaris เรามีการสำรองข้อมูล tar ของเครื่อง AIX ..

หนึ่งในนักพัฒนาที่พิมพ์:

tax xvf AIX_Backup.tar

แน่นอนเส้นทางในภาษีนั้นแน่นอนและเราได้สร้าง distro ใหม่ของยูนิกซ์ ... Solarix ... ปัญหาเดียวของ distro คือมันไม่ได้บู๊ต :(


10

เรื่องบอกกับฉัน:

สาขาอื่นที่เรียกว่าเนื่องจาก PBX ท้องถิ่นของพวกเขามีปัญหา หลังจากการตรวจสอบเราพบว่าพวกเขาอัพเดทเซิร์ฟเวอร์ แต่ไม่ใช่การตั้งค่า Asterisk ดังนั้นผู้ดูแลระบบจึงตัดสินใจสั่งให้คนสาขาทำการทำซ้ำการกำหนดค่า

ผู้ดูแลระบบ: "ตกลงตอนนี้พิมพ์ rm -rf / etc / asterisk"

Guy: "ตกลง"

ผู้ดูแลระบบ: "ตอนนี้พิมพ์ cp / var / ... "

Guy: "เดี๋ยวก่อนมันยังทำงานอยู่ ... "

ผู้ดูแลระบบ: ??? ... !!!


1
หากมีสิ่งใดผิดพลาดก็จะผิดพลาด
Joey Adams

9
rm -rf / some/path 

แทน

rm -rf /some/path 

โชคดีที่มันไม่ได้เกิดขึ้นกับฉัน ;-)


เกิดขึ้นกับเพื่อนร่วมชั้นของฉันเมื่อเร็ว ๆ นี้ โชคดีที่มันเป็นเพียงแค่ด้วย / etc / บางเส้นทาง / อื่น ๆ /
Ikke

มันจะต้องปิดการใช้งาน! ฉันคิดว่าตอนนี้มันถูกปิดการใช้งานในหลาย ๆ ระบบปฏิบัติการ กลัวเกินไปที่จะลองบน Ubuntu rm -rf /
Lakshman Prasad

ที่จริงแล้วมันจะเป็นอันตรายต่อระบบเฉพาะกับ sudo rm -rf /
voyager

เคยไปที่นั่นแล้วทำ ...
fgysin คืนสถานะให้โมนิก้า



8

XCOPYเป็นสัตว์ที่มีประสิทธิภาพ - ความเมตตาในการดำเนินการของมันและปัญญาอ่อนจากข้อเท็จจริงที่ว่า args บรรทัดคำสั่งไปในสิ่งที่ตรงกันข้ามจากหน้าต่างCOPYและ cpUNIX

สองสามวันที่ผ่านมาฉันเขียนโดยไม่ตั้งใจ:

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

XCOPYก็ใจดีพอที่จะเขียนทับsrcไดเรกทอรีของฉันด้วย ... ไม่มีอะไร! และไม่ต้องกังวลกับการวางไฟล์เก่าไว้ใน Recycle bin อีกด้วย

โอ้และปรากฎว่าXCOPYจริง ๆ แล้วเขียนทับภาคส่วนเดียวกันบนดิสก์แทนที่จะจัดสรรใหม่ ฉันลองใช้โปรแกรมกู้คืนดิสก์ 3 ครั้งและโปรแกรมที่ดีที่สุดสามารถกู้คืนได้เพียง 3 จาก 10 ไฟล์ที่หายไป แน่นอนว่า 3 ไฟล์เหล่านั้นเป็นเพียงแค่vshost.exeเพื่อนร่วมงาน บวม!


8

มีปัญหากับเครือข่าย (บนเครื่องระยะไกล) และเพิ่งต้องการเริ่มอินเทอร์เฟซใหม่

ifconfig eth0 down && ifconfig eth0 upp

ทุกวันนี้ฉันต้องแน่ใจว่ามีใครบางคนอยู่ใกล้กับเครื่องก่อนที่จะลองทำสิ่งนี้ (iptables เป็นตัวเลือกที่ดีเช่นกัน) และเมื่อไม่มีใครอยู่ที่นั่นฉันเคยพิมพ์

sleep 600; reboot

ไปยังเทอร์มินัลอื่น (หน้าจอ) ดังนั้นมันจะรีบูตถ้าฉันไม่สามารถ ctrl + c คำสั่งภายใน 10 นาที

ฉันเรียนรู้จากความผิดพลาดนั้นด้วย (ctrl + c การนอนจะเริ่มต้นใหม่) และตอนนี้ฉันก็ใช้

sleep 600 && reboot

ซึ่งจะทำให้ฉันสามารถ ctrl + c มัน


1
shutdown -r +5จะรีบูตระบบใน 5 นาทีเว้นแต่ว่าคุณจะฆ่าshutdownกระบวนการด้วยkillall shutdownเช่น
gelraen

1
ฉันเพิ่งเห็นผู้ดูแลระบบที่ทำผิดพลาดของ Mihi ภายใต้ Solaris จากนั้น (เรียนรู้จากความผิดพลาด) ลองเลือกทางเลือกของ gelraen
outis

8
ifconfig eth0 down

โอ๊ะฉันอยู่ด้านนอกของ eth0 เว็บเซิร์ฟเวอร์อยู่ในอีกด้านหนึ่งของโลกในห้องล็อค ไม่มีการเข้าถึงเครือข่ายเพื่อเข้าสู่ระบบหรือรีบูต อึ.


6

คุกกี้ฟรีสำหรับทุกคนที่สามารถบอกฉันได้ว่าทำไมฉันถึงเป็นคนงี่เง่าที่พยายามจะลบไฟล์และไดเรกทอรีที่ซ่อนอยู่ทั้งหมด:

rm -rf. *


1
คำสั่งของคุณลบไดเรกทอรีย่อยด้านล่างไดเรกทอรีปัจจุบันของคุณด้วยหรือไม่?
LéoLéopold Hertz 준영

ฉันสงสัยว่ารูปแบบของคุณตรงกันหรือไม่..hardlink
Mircea Vutcovici

BTW คุณทั้งคู่ชนะคุกกี้ :-)
แมตต์ซิมมอนส์

6

ในขณะที่ทำความสะอาดโฟลเดอร์บ้านของฉันบนเว็บเซิร์ฟเวอร์ที่ใช้งานจริงฉันลืมว่าฉันได้เชื่อมโยงเว็บรูทของเซิร์ฟเวอร์กับสถานที่ในโฟลเดอร์บ้านของฉัน ไม่คิดเลยว่าฉันจะใช้ rm -rf ในโฟลเดอร์นั้นและสิ่งต่อไปที่ฉันรู้คนกำลังเรียกว่าเว็บไซต์ไม่ทำงาน!

OOPS!


5

ฉันเคยเปรียบเทียบข้อมูลในสองโฟลเดอร์และเรียกใช้ rsync ด้วยตัวเลือก -d (ลบไฟล์ในปลายทางที่ไม่ได้อยู่ในแหล่งที่มา) จากนั้นฉันสลับรอบต้นทางและปลายทางเมื่อฉันวิ่ง rsync นั่นเป็นการลบไฟล์ใหม่ทั้งหมดที่ฉันต้องการสำรองข้อมูล ตอนนี้ฉันเรียนรู้การใช้ rsync ด้วย -n (dry-run)

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

ฉันไม่มีข้อมูลสำรอง


4

กาลครั้งหนึ่งนานมาแล้ว (อาจเป็นระบบที่สาม แต่มันนานมาแล้ว) มันเป็นไปได้ที่จะสร้างไฟล์ที่มีชื่อ*โดยใช้การอ้างอิงเปลือกขวา เมื่อฉันพบหนึ่งในไดเรกทอรีบ้านของฉันฉันได้พิมพ์rm *และใช้นิ้วของฉันบนคีย์ส่งคืนเมื่อบางสิ่งทำให้ฉันลังเลและคิดเกี่ยวกับมัน ...

การสร้างไฟล์ดังกล่าวสำหรับผู้ใช้รายอื่นเป็นเรื่องตลกทั่วไป

หากไฟล์อยู่ในไดเร็กทอรีนั่นเป็นไฟล์ที่ยากที่จะลดระดับลง การสะท้อนให้เห็นถึงการพิมพ์ชื่ออย่างถูกต้องตามที่lsแสดงไว้นั้นค่อนข้างแข็งแกร่ง

เล่นพิเรนทร์อื่น ๆ (ที่เป็นอันตรายน้อยกว่า) คือการตั้งชื่อไฟล์ที่มีพื้นที่สีขาวต่อท้าย (หรือเฉพาะพื้นที่สีขาว) ซึ่งยากมากที่จะลบ ...


2
นั่นคือสิ่งที่มีการ GUIs :)
Zifre

1
เปลือกเสร็จสิ้นเป็นประหยัดเวลาจริงสำหรับผู้ที่ไฟล์ต่อท้ายพื้นที่ :)
นายเงาและ New安宇

1
นี่คงจะเป็นแคลิฟอร์เนีย 2528 และเข้าถึงได้ด้วยการหมุนหมายเลขหรือผ่านสายเคเบิล RS-232 จากโคลนของเทอร์มินัล VT-100 ไม่ใช่เทอร์มินัลอีมูเลเตอร์ แต่เป็นเทอร์มินัลจริง ฉันจำไม่ได้ว่า csh มีการเติมชื่อในเวลา ... ;-) วันนี้แน่นอน GUIs และการเติมชื่อทำให้ทั้งสองมีความเสี่ยงน้อยกว่าและระบบปฏิบัติการจำนวนมากทำให้การสร้างไฟล์ดังกล่าวเป็นเรื่องยากขึ้น การแก้ไขเซกเตอร์ของดิสก์ ....
RBerteig

สัมผัส ./--help แล้วค่า RM --help มิได้ RM * จะทำงาน ...
mihi

คุณยังสามารถสร้างไฟล์ชื่ออย่างน้อยบน Linux: "touch ' '" และ "RM '*'" นอกจากนี้ยังทำงาน ...
sleske

4

เนื่องจากมีประสบการณ์ที่ไม่ดีกับความไม่เสถียรของ JBoss ทั่วไปหลังจากการรีสตาร์ทฉันต้องการล้างไฟล์การทำงานของ JBoss ก่อนการรีสตาร์ท ปกติฉันจะทำ:

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

เพื่อปกป้องตนเองจากการพิมพ์ข้อผิดพลาดที่เป็นไปได้มากมายเช่น:

  • tmp / / *
  • tmp / *
  • คุณได้รับความคิด

ฉันทำคำสั่งสุดท้าย:

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

เนื่องจากผู้ใช้ JBoss จะพบว่าเป็นการยากที่จะลบไฟล์สำคัญใด ๆ ที่ไม่ได้เป็นของมัน

ฉันไม่เคยทำผิดพลาดจริง ๆ แต่ฉันปลอดภัยในกรณีที่ฉันทำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.