มันปลอดภัยที่จะ rm -rf / tmp / *


29

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

sudo rm -rf /tmp/*

?


นี่เป็นเซิร์ฟเวอร์ที่ใช้งานอยู่หรือเครื่องเดสก์ท็อปที่มีการปิดเครื่องทุกวันหรือไม่
— ผู้ใช้ที่ไม่รู้จัก

ฉันต้องการถามว่าทำไมคุณต้องการลบไฟล์ใน / tmp เป็นเพราะมันเต็มไปด้วยเหตุผลส่วนตัวหรือ? หากเป็นปัญหาด้านพื้นที่อาจเป็นเพราะแอปพลิเคชั่นมีพฤติกรรมที่ไม่ดีหรืออาจเป็นเพราะจำเป็นต้องอยู่ในพาร์ติชันที่มีขนาดใหญ่กว่า หากความเป็นส่วนตัวมีทางเลือกอื่นเช่นการใช้ระบบไฟล์ที่เข้ารหัสซึ่งคุณอาจต้องการพิจารณา
— Rob

อาจทำให้เกิดปัญหาต่าง ๆ ในระบบของคุณ แต่ส่วนใหญ่จะทำงาน
— peterh กล่าวว่าคืนสถานะโมนิก้า

คำตอบ:


19

โดยทั่วไปไม่มี

ถ้ามันเต็มไปด้วยขยะคุณอาจต้องการดูว่าซอฟต์แวร์ไม่ทำความสะอาดตัวเอง

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


9
เห็นด้วยกับการขับร้องของ 'ไม่' ที่นี่และภาคผนวกที่ distros linux ส่วนใหญ่ทำความสะอาดโดยอัตโนมัติ/tmp/เมื่อเริ่มต้น แม้ว่าจะไม่ได้ช่วยอะไรเลยหากเรากำลังพูดถึงเซิร์ฟเวอร์ที่ไม่มีการรีบูต - EVER ที่นี่ความเป็นไปได้อย่างหนึ่งที่อาจเกิดขึ้น find ./ -type f -atime 14 -exec rm {} \; ทุกสัปดาห์หรือมากกว่านั้นคือการลบไฟล์ธรรมดาที่ไม่ได้เข้าถึงเลยในช่วงสองสัปดาห์ที่ผ่านมา ..
— Shadur

find ./ -type f -atime 14 -deleteด้วย gnu-find
— ผู้ใช้ที่ไม่รู้จัก

@user ของหลักสูตรนี้คิดว่า/tmpไม่ได้ใช้ค่าเริ่มต้นของเคอร์เนลในปัจจุบันซึ่งเป็นเพียงการอัปเดตเมื่อแฟ้มถูกแก้ไขหรือrelatime noatimeในกรณีนี้atimeจะไม่เป็นประโยชน์จากระยะไกล
— xenoterracide

8

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

คุณควรดูว่ามีอะไรอยู่ในนั้นก่อนที่คุณจะตัดสินใจลบออก การทำ rf -rf * กับสิ่งใดก็ตามเป็นอันตรายโดยเนื้อแท้


3
ในระบบของฉัน logfiles ไปที่ / var / log, lockfiles ไปที่ / var / lock
— ผู้ใช้ที่ไม่รู้จัก

3
@user แน่นอนสำหรับระบบ daemons ... นี่ไม่ได้หมายความว่าไม่มีการล็อกหรือบันทึกสำหรับแอปพลิเคชันผู้ใช้/tmpเนื่องจากผู้ใช้ปกติไม่สามารถเขียนถึง/var/log|lockฉันมีเชลล์สคริปต์ที่เขียนล็อคไป/tmp
— xenoterracide

7

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


คำถามด่วนเมื่อคุณพูดว่า "ที่จะฆ่าซ็อกเก็ต" สิ่งที่คุณทำโดย 'ซ็อกเก็ต'?
— Qasim


2

เลขที่

แต่คุณสามารถ ramdisk สำหรับ / tmp dir แล้วมันจะว่างเปล่าหลังจากรีบูตระบบทุกครั้ง และเป็นผลข้างเคียงที่ระบบของคุณอาจจะกลายเป็นเรื่องใหญ่เร็วขึ้นเล็กน้อย

Google มีข้อมูลมากมายเกี่ยวกับ tmpfs และ / หรือ ramfs


การล้าง / tmp โดยอัตโนมัติเมื่อรีสตาร์ทเป็นเรื่องปกติหรือไม่ Gentoo ทำและฉันคิดว่า Ubuntu ทำมานานแล้วตั้งแต่ฉันใช้มัน
— Michael Mrozek

ไม่ฉันไม่คิดว่า Debian ที่ได้รับมาจาก Debian อย่าง Ubuntu จะทำมัน (ตอนนี้) แต่มันค่อนข้างง่ายที่จะเพิ่มถ้าคุณชอบมัน
— Johan

Ubuntu Matty (หรืออะไรก็ตามที่เรียกว่ารุ่นปัจจุบัน) แต่ถ้าคุณไม่รีบูทเครื่องเป็นประจำมันจะไม่เกิดขึ้น
— Rob

โอเคไม่ได้ตรวจสอบกระแส ฉันกำลังใช้แทร็ก LTS ในตอนนี้
— Johan

Ubuntu ทำและ Linux ทุกตัวที่ฉันทดสอบมาก่อนทำ: Knoppix, Peanut, Halloween, Red Hat, SuSe ทำไมมันถึงทำให้ระบบเร็วขึ้น? อะไรจะเร็วขึ้น การคำนวณการเข้าถึงดิสก์ระบบเครือข่ายบูตเครื่องหรือไม่
— ผู้ใช้ที่ไม่รู้จัก

-4

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

1- เปลี่ยนชื่อไดเรกทอรี "tmp" ที่มีอยู่เป็น "old_tmp" 2- สร้างไดเรกทอรี "tmp" ใหม่ที่ว่างเปล่า 3- กำหนดสิทธิ์ทั้งหมดเป็น "0777" ไปยังไดเรกทอรีที่สร้างขึ้นใหม่นี้เพื่อให้ระบบ / การตั้งค่าสามารถมีสิทธิ์ในการสร้าง / วางบันทึกและไฟล์อื่น ๆ ภายในไดเรกทอรีนี้ 4- เรียกใช้ระบบและแอพพลิเคชั่นเพื่อให้แน่ใจว่าทุกอย่างทำงานได้ดีและทำงานได้ตามปกติ ให้สังเกตใน 2-3 วัน 5- หากแน่ใจว่าไม่มีอะไรได้รับผลกระทบเนื่องจากการเปลี่ยนชื่อไดเรกทอรี "tmp" เป็น "old_tmp" คุณสามารถลบไดเรกทอรี "old_tmp"

หมายเหตุ: หากมีสิ่งใดที่ทำให้เกิดปัญหาเนื่องจากการเปลี่ยนชื่อไดเรกทอรี "tmp" เป็น "old_tmp" ให้ไดเรกทอรีนี้กลับไปเป็นชื่อเดิม "tmp"


2
นี่เป็นความคิดที่แย่จริงๆ มีหลายสาธารณูปโภคมาตรฐานเปลือกที่เขียนไฟล์ชั่วคราวเข้ามาและที่จะเริ่มต้นความล้มเหลวโดยเร็วที่สุดเท่าที่คุณเปลี่ยนชื่อเดิม/tmp /tmpนอกจากนี้โปรดทราบว่า/tmpไดเรกทอรีควรมีสิทธิ์เฉพาะ (เช่นชุดบิตเหนียว)
— Kusalananda

โปรดอ่านอย่างระมัดระวังสิ่งที่ฉันพูด: คุณอาจจะมีสาธารณูปโภคเชลล์มาตรฐานจำนวนมากที่เขียนไฟล์ชั่วคราวลงในไดเรกทอรี "/ tmp" นั่นคือเหตุผลที่ฉันบอกว่าจะสร้างไดเรกทอรี "tmp" ใหม่และกำหนดสิทธิ์ทั้งหมดให้หลังจากเปลี่ยนชื่อเดิมที่มีอยู่ ไดเรกทอรี "tmp"
— A.Aleem11

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