ข้อผิดพลาดในเช้าวันจันทร์: sudo rm -rf - no-keep-root /


146

โปรดทราบ: คำตอบและความเห็นต่อคำถามนี้มีเนื้อหาจากอีกคำถามที่คล้ายกันซึ่งได้รับความสนใจอย่างมากจากสื่อภายนอก แต่กลับกลายเป็นคำถามหลอกลวงในรูปแบบการตลาดแบบปากต่อปาก เนื่องจากเราไม่อนุญาตให้ ServerFault ถูกใช้ในทางที่ผิดคำถามเดิมจึงถูกลบและคำตอบที่รวมเข้ากับคำถามนี้


นี่เป็นโศกนาฏกรรมที่สนุกสนาน เช้านี้ฉันทำการบำรุงรักษาเล็กน้อยในเซิร์ฟเวอร์การผลิตของฉันเมื่อฉันดำเนินการคำสั่งต่อไปนี้โดยไม่ตั้งใจ:

sudo rm -rf --no-preserve-root /mnt/hetznerbackup /

ฉันไม่ได้สังเกตเห็นช่องว่างสุดท้ายก่อนหน้านี้/และไม่กี่วินาทีต่อมาเมื่อคำเตือนท่วมท้นบรรทัดคำสั่งของฉันฉันรู้ว่าฉันเพิ่งกดปุ่มทำลายตัวเอง นี่คือส่วนหนึ่งของสิ่งที่ถูกเผาไหม้ในดวงตาของฉัน:

rm: cannot remove `/mnt/hetznerbackup': Is a directory
rm: cannot remove `/sys/fs/ecryptfs/version': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/inode_readahead_blks': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/mb_max_to_scan': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/delayed_allocation_blocks': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/max_writeback_mb_bump': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/mb_stream_req': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/mb_min_to_scan': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/mb_stats': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/trigger_fs_error': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/session_write_kbytes': Operation not permitted
rm: cannot remove `/sys/fs/ext4/md2/lifetime_write_kbytes': Operation not permitted
# and so on..

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

คุณจะก้าวต่อจากที่นี่ได้อย่างไร? ฉันจะว่ายน้ำมหาสมุทรที่มีลวดหนามเพื่อรับ SSH-access back

เซิร์ฟเวอร์กำลังใช้งาน Ubuntu-12.04 และโฮสต์ที่ Hetzner


48
กู้คืนจากการสำรองข้อมูล สุจริตนี่เป็นหนึ่งในสถานการณ์ที่ไม่มีทางกลับง่าย
MadHatter

310
คุณจะพิมพ์--no-preserve-rootโดยไม่ตั้งใจได้อย่างไร! : -o
ThatGraemeGuy

144
Greame คีย์นั้นอยู่ติดกัน
MadHatter

38
งานวันอังคาร: มองหางานใหม่;) ใช้เป็นบทเรียนว่าทำไมต้องมีการสำรองข้อมูล
TomTom

43
แน่นอนว่าดูเหมือนจะหลอกหลอนฉัน คุณไม่สามารถพิมพ์ --i-really-mean-delete-my-whole-root โดยไม่ได้ตั้งใจ
psusi

คำตอบ:


95

บูตเข้าสู่ระบบช่วยเหลือที่ Hetzner จัดหาให้และตรวจสอบความเสียหายที่คุณได้ทำไป
ถ่ายโอนไฟล์ใด ๆ ไปยังตำแหน่งที่ปลอดภัยและปรับใช้เซิร์ฟเวอร์อีกครั้งในภายหลัง

ฉันกลัวว่านี่เป็นทางออกที่ดีที่สุดในกรณีของคุณ


102
ดูด้านสว่างอย่างน้อยเขาก็ไม่มีปัญหากับการเต้นของหัวใจ!
metacom

222

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

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

ที่กล่าวว่ามีบางสิ่งที่น่ากลัวมากในคำถามและความคิดเห็นที่ควรเป็นส่วนหนึ่งของรายงานหลังการกระทำของคุณ

ประการแรกคุณรันคำสั่งทุกที่โดยไม่ตรวจสอบก่อน เรียกใช้คำสั่งบนกล่องเดียว จากนั้นอีกไม่กี่อย่าง โดยทั่วไปถ้ามีอะไรผิดพลาดที่ดีกว่าที่จะมีมันส่งผลกระทบต่อกี่มากกว่าทุกระบบของคุณ

ในประการที่สอง

@ วิธีการสำรองข้อมูลโดยไม่ต้องติดตั้งไดรฟ์ระยะไกลบนเซิร์ฟเวอร์

ทำให้ฉันกลัว. การสำรองข้อมูลทางเดียวในระดับไฟล์เป็นปัญหาที่แก้ไขแล้ว Rsync สามารถใช้เพื่อสงวนสิทธิ์และคัดลอกไฟล์ทางเดียวไปยังไซต์สำรอง ตั้งใจอะไรบางอย่าง? ติดตั้งใหม่ (โดยอัตโนมัติโดยเฉพาะอย่างยิ่ง) rsync กลับมาและสิ่งต่าง ๆ ใช้งานได้ ในอนาคตคุณอาจใช้สแน็ปช็อตระดับระบบไฟล์ด้วยสแน็ปช็อต btrfs หรือ zfs และจัดส่งสแน็ปช็อตเหล่านั้นสำหรับการสำรองข้อมูลระดับระบบ ฉันจริง ๆ แล้วเล่นกับการแยกแอปพลิเคชันเซิร์ฟเวอร์ฐานข้อมูลและการจัดเก็บและแนะนำหลักการของสิทธิ์น้อยที่สุดดังนั้นคุณจะแบ่งความเสี่ยงของสิ่งเช่นนี้ ..

ฉันรู้ว่ามีอะไรที่ฉันสามารถทำได้ ตอนนี้ฉันต้องคิดวิธีการป้องกันตัวเอง

หลังจากสิ่งที่เกิดขึ้นเป็นเวลาที่เลวร้ายที่สุดในการพิจารณานี้

เราเรียนรู้อะไรจากสิ่งนี้

  1. สำรองข้อมูลบันทึก อาจเป็นอาชีพ
  2. หากคุณมีเครื่องมือและไม่ทราบว่ามันสามารถทำอะไรได้มันอันตราย เจไดสามารถทำสิ่งที่น่าอัศจรรย์ด้วยกระบี่แสง ชิมแปนซีที่เต็มไปด้วยแสงไฟ ... จะยุ่งเหยิง
  3. ไม่เรียกใช้คำสั่งทุกครั้ง แยกเครื่องทดสอบและอุปกรณ์การผลิตออกและควรเลือกเครื่องจักรที่ใช้ในการผลิตเป็นระยะ ดีกว่าที่จะซ่อม 1 หรือ 10 เครื่องแทนที่จะเป็น 100 หรือ 1,000

  4. คำสั่งตรวจสอบสองและสาม ไม่มีความละอายในการขอให้เพื่อนร่วมงานตรวจสอบอีกครั้ง "เฮ้ฉันกำลังจะไปขับรถคุณสามารถตรวจสุขภาพอย่างนี้ได้หรือไม่ เสื้อคลุมอาจช่วยได้เช่นกัน แต่ไม่มีอะไรเต้นตาเหนื่อยน้อยลง

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


9
@MarcoMarsala หากคุณติดตั้งอะไรก่อนที่จะใช้ rsync คุณไม่ได้ทำอย่างถูกต้อง คุณควรใช้ rsync ผ่าน ssh
Michael Hampton

67
ฉันจะเพิ่มคำตอบที่ยอดเยี่ยมนี้: ออกไปจากคอมพิวเตอร์ อย่าพยายามแก้ไขอะไรจนกว่าคุณจะสงบลง คุณกำลังดูการหยุดทำงานที่รุนแรงอยู่บ้างแล้ว สละเวลาในการคิดสิ่งต่าง ๆ แทนที่จะทำลายระบบของคุณมากยิ่งขึ้น (ดังในddประเด็นด้านบน) จะไม่ทำให้แย่ลง
เจนนี่ D

22
ความคิดใดว่าทำไมคำสั่งวิ่งจริง? หาก$fooและ$barทั้งคู่ไม่ได้กำหนดrm -rf /ควรมีข้อผิดพลาดกับ--no-preserve-rootข้อความ วิธีเดียวที่ฉันจะคิดว่าเรื่องนี้จะได้ทำงานจริงบนเครื่อง CentOS7 คือถ้า$barการประเมินเพื่อดังนั้นสิ่งที่ได้รับการดำเนินการ* rm -rf /*
terdon

9
ฉันชอบสไตลิสต์ใน นั่นหมายความว่าคำว่า "ลบ" เป็น "ลบ" หรือ "หลุด" โดยไม่ตั้งใจ
sehe

20
@MarcoMarsala อย่างน้อยคุณก็มีชื่อเสียงในขณะนี้เป็นอิสระ.
Martin Smith

92

เมื่อคุณลบเนื้อหาด้วยrm -rf --no-preserve-rootจะไม่สามารถกู้คืนได้ เป็นไปได้มากว่าคุณได้สูญเสียไฟล์สำคัญทั้งหมด

ดังที่@fakerกล่าวไว้ในคำตอบของเขาวิธีที่ดีที่สุดในการดำเนินการคือถ่ายโอนไฟล์ไปยังตำแหน่งที่ปลอดภัยและปรับใช้เซิร์ฟเวอร์อีกครั้งในภายหลัง

เพื่อหลีกเลี่ยงสถานการณ์ที่คล้ายกันในอนาคตฉันขอแนะนำให้คุณ:

  • สำรองข้อมูลทุกสัปดาห์หรืออย่างน้อยทุกสองสัปดาห์ สิ่งนี้จะช่วยคุณในการรับบริการที่ได้รับผลกระทบด้วย MTTR ที่เป็นไปได้น้อยที่สุด

  • ไม่ได้ทำงานเป็นรากเมื่อไม่จำเป็นต้อง และมักจะคิดว่าสองครั้งก่อนที่จะทำอะไร ฉันขอแนะนำให้คุณติดตั้งsafe-rmด้วย

  • อย่าพิมพ์ตัวเลือกที่คุณไม่ต้องการเรียกใช้เช่น--no-preserve-rootหรือ--permission-to-kill-kittens-explicitly-grantedสำหรับเรื่องนั้น


18
ในทำนองเดียวกันเว้นแต่คุณจริงๆหมายความว่ามันไม่ได้เพิ่มพารามิเตอร์--please-destroy-my-drive hdparm
MikeyB

3
ฉันต้องการเพิ่ม; "ตรวจสอบข้อโต้แย้งของคุณ (และตัวเลือก) เมื่อทำงานในฐานะรูท", "ตรวจสอบ CurrentWorkingDirectory ของคุณ (ก่อนที่จะทำอะไรบางอย่างเช่น rm -rf *)" และ "ใช้เส้นทางแบบเต็มไปยังคำสั่ง (ไม่ถ่ายทอดบน $ PATH)
Baard Kopperud

47

ฉันมีปัญหาเดียวกัน แต่เพิ่งทดสอบกับฮาร์ดไดรฟ์ฉันทำทุกอย่างหายไป ผมไม่ทราบว่ามันจะเป็นประโยชน์ แต่ไม่ได้ติดตั้งอะไร , ไม่เขียนทับข้อมูลของคุณคุณจะต้องติดตั้งฮาร์ดไดรฟ์ของคุณและเปิดนิติบางเครื่องมือดังกล่าวเราชันสูตรศพ PhotoRec, TestDisk

ฉันขอแนะนำ Testdisk ด้วยคำสั่งพื้นฐานบางอย่างคุณสามารถกู้คืนข้อมูลของคุณหากคุณไม่ได้เขียนทับมัน


8
ฉันขอแนะนำให้ทำการจัดเก็บข้อมูลออฟไลน์ถ้าเป็นไปได้และติดตั้งใหม่เป็น 'อ่านอย่างเดียว' ถ้าทำได้ ไม่ว่าจะเป็นกับ liveisk หรือเซิร์ฟเวอร์อื่น
mhouston100

2
ฉันยังคิดจะทำบิตสำเนาของดิสก์ดั้งเดิมไปยังดิสก์ใหม่จากการติดตั้งแบบอ่านอย่างเดียวของดิสก์ดั้งเดิมเพื่อความปลอดภัย
Jim

3
«เครื่องมือเหล่านี้จะไม่กู้คืนชื่อไฟล์และพา ธ »ใช่พวกเขาทำได้ จาก 3 เครื่องมือที่กล่าวมามีเพียงหนึ่งตัวเท่านั้น (Photorec) ทำการแกะสลัก
Andrea Lazzarotto

34

วิธีที่ดีที่สุดในการแก้ไขปัญหาเช่นนี้คือการไม่มีปัญหาตั้งแต่แรก

อย่าป้อนคำสั่ง "rm -rf" ด้วยตนเองที่มีเครื่องหมายทับในรายการอาร์กิวเมนต์ (การใส่คำสั่งดังกล่าวในเชลล์สคริปต์ด้วยรูทีนการตรวจสอบ / สติที่ดีจริงๆเพื่อปกป้องคุณจากการทำสิ่งที่โง่ต่างไป)

อย่าทำอย่างนั้น
เคย หากคุณคิดว่าคุณต้องทำคุณก็ไม่ได้คิดหนักพอ

ให้เปลี่ยนไดเร็กทอรีการทำงานของคุณเป็นพาเรนต์ของไดเร็กทอรีที่คุณต้องการเริ่มการลบเพื่อให้เป้าหมายของคำสั่ง rm ไม่ต้องการสแลช:

cd / mnt

sudo rm -rf hetznerbackup


31
ฉันใส่ -rf ที่ส่วนท้ายของรายการอาร์กิวเมนต์rm /bla/foo/bar -rfเสมอ อย่างน้อยฉันก็ไม่ได้มีปัญหาอะไรมากเมื่อฉันกดปุ่มย้อนกลับอย่างตั้งใจหลังจากพิมพ์rm /ส่วนนั้น
Jens Timmerman

5
ในทำนองเดียวกันเมื่อลบไฟล์ "* ~" ฉันพิมพ์เครื่องหมายตัวหนอนก่อนแล้วจึงเพิ่มเครื่องหมายดอกจัน
tekknolagi

4
ดังนั้นคุณควรจะลบบ้านของคุณมากกว่าทุกสิ่งในไดเรกทอรีปัจจุบันหรือไม่?
greg0ire

@ greg0ire ไม่ฉันคิดว่าเขาอยากจะบอกว่าข้างใน/mnt/hetznerbackupนั้นเขาต้องใช้ "/" เพื่อทำเครื่องหมายทุกอย่างในโฟลเดอร์นั้น .. แต่จากผู้ปกครองเพียงอย่างเดียวhetznerbackupก็เพียงพอแล้วโดยไม่มีเครื่องหมายทับ
T.Todua

1
@tazotodua: ฉันหมายถึงความคิดเห็นของ
tekknolagi

16

ฉันจะพยายามกู้คืนเครื่องสำรองที่จัดเก็บสำเนาทั้งหมด:

  • ขั้นตอนที่ 1 - สำรองข้อมูลของไดรฟ์ "เครื่องสำรองข้อมูล" ที่ถูกลบด้วย ddcomand
  • ขั้นตอนที่ 2 - ใช้testdiskเพื่อกู้คืนไฟล์

ดังนั้นสมมติว่าคุณต้องการกู้คืน 1TB คุณจะต้องเพิ่ม 2TB, 1TB สำหรับการสำรองข้อมูล (ขั้นตอนที่ 1) และ 1TB สำหรับการกู้คืน (ขั้นตอนที่ 2)

ฉันทำผิดพลาดคล้ายกันกับ alias rm -fr [phone rang] และ cd ไปยังไดเรกทอรีที่มีค่า ตอนนี้ฉันคิดเสมอสองครั้งและตรวจสอบสองสามครั้งก่อนที่ฉันจะใช้คำสั่ง rm หรือ dd


6
ทำให้ดิสก์ของคุณเป็นศูนย์โดยการทำเช่นนั้น สิ่งนี้ทำให้การกู้คืนยากขึ้นมาก มีเหตุผลที่ดีที่ OP แนะนำให้คุณลองใช้ testdisk และกู้คืนก่อนและในขณะที่ไวยากรณ์ของ dd อาจแปลกนิดหน่อยนั่นเป็นเหตุผลที่ดีในการตรวจสอบสองครั้งและสามครั้งก่อนที่คุณจะเรียกใช้คำสั่ง คุณเช็ดเซิร์ฟเวอร์เดียวใช่ไหม?
Geek

1
คุณยังสามารถกู้คืนได้ขึ้นอยู่กับระยะเวลาที่คุณได้รับอนุญาตddให้ลบโอกาสสุดท้าย
Abc Xyz

129
เสียใจที่จะบอกว่า แต่ฉันรู้สึกโทรลล์ขนาดใหญ่ในคำถามนี้ ...
tymik

3
หวังว่ายูรู้สึกหมุนรอบเล็ก ๆ ในคำตอบ :)
Abc Xyz

5
พูดตามตรง ฉันไม่แน่ใจว่าคุณเป็นของจริง หากคุณเป็นคุณคุณอาจอยู่ในงานที่ผิด ...
leftcase

7

ดังที่ได้กล่าวไว้ในคำตอบอื่น Hetzner มีระบบช่วยเหลือ มันมีทั้งตัวเลือก netboot พร้อมการเข้าถึง ssh รวมถึง java applet เพื่อให้หน้าจอและคีย์บอร์ดบน vserver ของคุณ

หากคุณต้องการกู้คืนมากที่สุดให้รีบูตเซิร์ฟเวอร์เข้าสู่ระบบ netboot จากนั้นล็อกอินและดาวน์โหลดรูปภาพของระบบไฟล์โดยอ่านจากอุปกรณ์ inode ที่เหมาะสม

ฉันคิดว่าสิ่งนี้ควรใช้งานได้:

ssh root@host cat /dev/sda > server.img

แน่นอนว่าการเปลี่ยนเส้นทางทำโดยเชลล์ก่อนที่คำสั่ง ssh จะถูกเรียกใช้ดังนั้น server.img เป็นไฟล์ในเครื่อง หากคุณต้องการเพียงแค่ระบบไฟล์รูทไม่ใช่ดิสก์แบบเต็มให้แทนที่sdaโดยsda3สมมติว่าคุณใช้อิมเมจเดียวกับฉัน


อาจจะเป็น: ssh root@host cat /dev/sda | gzip -c - > /path/to/dir_on_huge_partition/server.img.gz(gzip on-the-fly จะหรือไม่ช่วยขึ้นอยู่กับสิ่งที่เนื้อหาของระบบแฟ้มคือ ... )
Olivier Dulac

@OlivierDulac การใช้ gzip ด้วยวิธีนั้นจะเป็นการส่งข้อมูลที่ไม่ได้บีบอัดผ่านเครือข่ายแล้วทำการบีบอัดข้อมูลที่ด้านรับ ฉันถือว่าผลลัพธ์ที่คุณตั้งใจจะทำให้สำเร็จคือการบีบอัดข้อมูลขณะถ่ายโอน ภาพในตัวเครื่องอาจถูกบีบอัดไว้หรือไม่ แต่เครื่องมือที่คุณต้องการนำไปใช้กับภาพนั้นในภายหลังจะไม่ทำงานกับรุ่นที่บีบอัด หากสิ่งที่คุณต้องการบรรลุคือการบีบอัดข้อมูลในระหว่างการขนส่งคุณสามารถใช้ประโยชน์จากคุณลักษณะการบีบอัดข้อมูลใน ssh สามารถเปิดใช้งานได้-Cหากยังไม่ได้เปิดใช้งานในการกำหนดค่าของคุณ
kasperd

2
ฉันพยายามลดขนาดไฟล์มากขึ้น แต่ถ้าคุณต้องการประหยัดแบนด์วิดธ์ (ความคิดที่ดี): เพียงแค่เพิ่มเครื่องหมายคำพูด: ssh root@host "cat /dev/sda | gzip -c - " > /path/to/dir_on_huge_partition/server.img.gz(ตัวเลือก -c ของ ssh ก็ดีเช่นกัน แต่คุณยังต้องบีบอัดในตอนท้ายเนื่องจาก ssh จะบีบอัดที่ปากอุโมงค์เท่านั้น และยกเลิกการบีบอัดก่อนที่จะส่งไปยัง stdout)
Olivier Dulac

2

คุณจะก้าวต่อจากที่นี่ได้อย่างไร?

ฉันจะสาบานปิดใช้rmสำหรับส่วนที่เหลือของชีวิตของฉันและคิดว่ามันบ้าที่ถังขยะ -cli ไม่ได้เป็นคำสั่งลบเริ่มต้นในระบบระวัง

https://github.com/andreafrancia/trash-cli

ฉันจะตรวจสอบให้แน่ใจว่าเป็นสิ่งแรกที่ฉันติดตั้งบนระบบใหม่เอี่ยมและalias rmกับสิ่งที่บอกให้คนใช้trash-cliแทน นอกจากนี้ยังจะมีหมายเหตุเกี่ยวกับนามแฝงอื่นที่ใช้งานได้จริง/bin/rmแต่บอกให้หลีกเลี่ยงการใช้ในกรณีส่วนใหญ่

:( เรื่องจริง


2
จากประสบการณ์ของฉันเครื่องมือประเภทนี้เป็นเหมือนความรำคาญมากกว่าความช่วยเหลือที่เกิดขึ้นจริงไม่ช้าก็เร็วและหลังจากสาบานคุณจะลบมันออก มันอาจจะโอเคสำหรับเวิร์กสเตชัน แต่ในหลาย ๆ กรณีถ้าไม่ใช่สถานการณ์ส่วนใหญ่เมื่อคุณทำงานด้านการดูแลระบบบนเซิร์ฟเวอร์คุณต้องลบข้อมูลจริงๆไม่ใช่แค่ย้ายมันไปที่อื่น (และถ้าเป็นเช่นนั้นให้ใช้ mv แทน). นอกจากนี้การย้ายข้อมูลไปยังโฟลเดอร์ถังขยะโดยอัตโนมัติอาจทำให้เกิดปัญหาร้ายแรงด้วยตัวเอง (เช่นถังขยะที่ไม่ได้อยู่ในระบบไฟล์และความปลอดภัยเดียวกัน)
maetthu

@maetthu โอ้แน่นอนว่าสิ่งต่าง ๆ ถูกลบหลังจากที่พวกเขาอยู่ในถังขยะเป็นเวลาหลายวัน เดสก์ท็อป Ubuntu ทำสิ่งนี้กับรายการที่อยู่ในถังขยะนานกว่า 30 วัน บนเซิร์ฟเวอร์คุณอาจต้องการบางสิ่งที่สั้นกว่าเช่น trash-empty 5ใน cron ประเด็นคือเพื่อให้คุณมีช่วงเวลาผ่อนผันเพราะมนุษย์ทำผิดพลาด
เจอร์รี่

มันจะดีกว่าไหมถ้ามีแผนกู้คืนระบบที่ใช้งานได้แทนที่จะใช้เครื่องมือระบบที่จำเป็น?
user292812

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

1
กระบวนการลบแบบสองขั้นตอนสามารถบันทึกปัญหาได้มากมาย: 1. ย้ายไปที่ถังขยะ (verbosely), 2. ถังขยะเปล่า ฉันใช้นามแฝงเช่นสคริปต์เป็น "rm" และช่วยให้ฉันลบสิ่งสำคัญหลายครั้งโดยไม่ตั้งใจ
Sam Watkins

1

ฉันจะให้คำแนะนำในกรณีดังกล่าวเป็นยกเลิกการต่อเชื่อมและใช้debugfsและด้วยความช่วยเหลือของlsdelคุณสามารถแสดงรายการไฟล์ที่ลบออกไปทั้งหมดเมื่อเร็ว ๆ นี้ซึ่งที่ไม่ได้ทำความสะอาดขึ้นจากวารสารแล้วถ่ายโอนไฟล์ที่จำเป็น ลิงค์การค้นหาแบบรวดเร็วเช่นเดียวกัน: http://www.linuxvoodoo.com/resources/howtos/debugfs

หวังว่ามันจะช่วยใครซักคน ;)

และใช่หนึ่งในข้อเสนอแนะคือการสร้างสคริปต์ซึ่งย้ายram rmเป็นreal.rmและ symlinc mvเป็นrm ;)


-2

หยุดการประมวลผลเซิร์ฟเวอร์ทั้งหมดและทุกอย่างที่อาจทำให้ดิสก์ i / o ... จากนั้นเรียกใช้ testdisk ซึ่งควรอยู่ในซอฟต์แวร์สแต็กของคุณ หากคุณมีการเข้าถึงทางกายภาพให้ใช้ livecd กับ testdisk


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