Có an toàn với rm -rf / tmp / * không?


29

Đây là điều tôi từng làm rất nhiều trên Windows, nhưng sau fiasco gần đây tôi muốn chắc chắn. Có an toàn không

sudo rm -rf /tmp/*

?


Đây có phải là một máy chủ đang chạy, hay một máy tính để bàn bị tắt máy hàng ngày?
người dùng không xác định

Tôi muốn hỏi tại sao bạn muốn xóa các tập tin trong / tmp? Là bởi vì nó được lấp đầy, hoặc là vì lý do riêng tư? Nếu đó là một vấn đề không gian, nó có thể là do một ứng dụng hoạt động kém hoặc có thể là nó cần phải nằm trên một phân vùng lớn hơn. Nếu quyền riêng tư, có những lựa chọn thay thế khác, chẳng hạn như sử dụng các hệ thống tệp được mã hóa mà bạn có thể muốn xem xét.
Cướp

Nó có thể gây ra nhiều vấn đề khác nhau trên hệ thống của bạn, nhưng chủ yếu là nó sẽ hoạt động.
peterh nói rằng phục hồi Monica

Câu trả lời:


19

Nói chung, không.

Nếu nó chứa đầy rác, bạn có thể muốn xem phần mềm nào không tự dọn dẹp.

Bạn cũng có thể sử dụng find để xác định các tệp chưa được sửa đổi hoặc truy cập trong một thời gian dài có thể an toàn để xóa.


9
Đồng tình với điệp khúc 'không' ở đây và phần phụ lục mà hầu hết các bản phân phối linux tự động dọn sạch /tmp/khi khởi động. Mặc dù điều này không nhất thiết phải giúp nếu chúng ta đang nói về máy chủ EVER không khởi động lại ở đây, một khả năng có thể là chạy find ./ -type f -atime 14 -exec rm {} \; mỗi tuần hoặc lâu hơn để xóa bất kỳ tệp đơn giản nào đã không được truy cập trong hai tuần qua. ..
Shadur

find ./ -type f -atime 14 -deletevới gnu-find
người dùng không xác định

@user điều này tất nhiên giả định rằng /tmpkhông sử dụng mặc định kernel hiện tại mà relatimechỉ cập nhật khi tệp được sửa đổi, hoặc noatime. Trong trường hợp đó atimesẽ không hữu ích từ xa.
xenoterracide

8

Câu trả lời thực sự là - nó phụ thuộc. / tmp có thể được sử dụng bởi các ứng dụng yêu cầu khóa tệp hoặc nhật ký tạm thời có mặt để chạy hoặc có thể không. Có thể có các liên kết trong đó ... không chắc là để làm gì, nhưng nó luôn luôn có thể.

Bạn nên thực sự nhìn vào những gì trong đó trước khi bạn quyết định loại bỏ nó. làm một rf -rf * trên bất cứ thứ gì vốn đã nguy hiểm.


3
Trên hệ thống của tôi, logfiles chuyển đến / var / log, lockfiles thành / var / lock.
người dùng không xác định

3
@user chắc chắn, đối với trình nền hệ thống ... điều này không nhất thiết có nghĩa là không có khóa hoặc nhật ký cho ứng dụng người dùng /tmpvì người dùng bình thường không thể viết thư cho /var/log|locktôi có tập lệnh shell ghi khóa/tmp
xenoterracide

7

Không. Ví dụ: nếu bạn có cơ sở dữ liệu MySQL chạy trên máy tính sẽ giết ổ cắm của nó hoặc nếu bạn đang sử dụng emacs làm máy chủ sẽ giết tiến trình máy chủ. Có nhiều trường hợp khác không an toàn để loại bỏ các tệp này. Điều tốt nhất để làm là viết một kịch bản kiểm tra ngày của tệp và chỉ xóa nó nếu nó đã cũ.


Câu hỏi nhanh khi bạn nói "điều đó sẽ giết ổ cắm của nó" bạn nghĩ gì về 'ổ cắm'?
Qasim


2

Không.

Nhưng bạn có thể một ramdisk cho thư mục / tmp thì nó sẽ trống sau mỗi lần khởi động lại hệ thống. Và như một tác dụng phụ, hệ thống của bạn có thể trở nên lớn hơn một chút nhanh hơn.

Google có rất nhiều thông tin về tmpfs và / hoặc ramfs.


Có phải là không phổ biến để xóa / tmp tự động khi khởi động lại? Gentoo cũng vậy, và tôi nghĩ Ubuntu cũng vậy, nhưng đã được một thời gian kể từ khi tôi sử dụng nó
Michael Mrozek

Không, tôi không nghĩ các bản phát hành Debian có nguồn gốc như Ubuntu làm điều đó (ngay bây giờ dù thế nào đi nữa). Nhưng nó khá dễ dàng để thêm điều này nếu bạn thích nó.
Johan

Ubuntu Matty (hoặc bất cứ điều gì bản phát hành hiện tại được gọi). Nhưng nếu bạn không khởi động lại máy thường xuyên, điều đó sẽ không xảy ra.
Cướp

Ok, không kiểm tra hiện tại. Tôi đang sử dụng theo dõi LTS ngay bây giờ.
Johan

Ubuntu có, và mọi Linux tôi đã thử nghiệm trước đây, đã làm: Knoppix, Peanut, Halloween, Red Hat, SuSe. Tại sao nó sẽ làm cho hệ thống nhanh hơn? Chính xác thì cái gì sẽ nhanh hơn? Tính toán, truy cập đĩa, kết nối mạng, khởi động?
người dùng không xác định

-4

Đề nghị của tôi là đổi tên thư mục tmp của bạn trước để xem những gì bị ảnh hưởng bởi thư mục này. Đổi tên nó từ "tmp" thành "old_tmp". Ngoài ra, tạo một thư mục trống mới có tên "tmp" vì có thể một số thiết lập hoặc quy trình hệ thống yêu cầu thư mục này để tạo một số tệp trong thư mục này như tệp nhật ký. Thực hiện theo các bước sau để loại bỏ an toàn ngày tmp.

1- Đổi tên thư mục "tmp" hiện tại thành "old_tmp". 2- Tạo thư mục "tmp" trống mới 3- Gán tất cả quyền là "0777" cho thư mục mới được tạo này để hệ thống / thiết lập có thể có quyền tạo / ghi nhật ký và các tệp khác trong thư mục này. 4- Chạy hệ thống và ứng dụng để đảm bảo mọi thứ đều chạy tốt và hoạt động như bình thường. Giữ trong quan sát trong 2-3 ngày. 5- Nếu chắc chắn không có gì bị ảnh hưởng do đổi tên thư mục "tmp" của bạn thành "old_tmp" thì bạn có thể xóa thư mục "old_tmp".

Lưu ý: Nếu bất kỳ điều gì gây ra sự cố do đổi tên thư mục "tmp" thành "old_tmp" thì hãy để thư mục này trở lại tên "tmp" ban đầu.


2
Đây là một ý tưởng thực sự xấu. Có nhiều tiện ích shell tiêu chuẩn ghi các tệp tạm thời vào /tmpvà điều đó sẽ bắt đầu thất bại ngay khi bạn đổi tên ban đầu /tmp. Cũng lưu ý rằng /tmpthư mục nên có các quyền cụ thể (ví dụ như tập bit dính).
Kusalananda

Vui lòng đọc kỹ những gì tôi đã nói: Bạn có thể có nhiều tiện ích shell tiêu chuẩn ghi các tệp tạm thời vào thư mục "/ tmp", đó là lý do tại sao tôi nói tạo thư mục "tmp" mới và được cấp quyền hoàn toàn cho nó sau khi đổi tên cũ thư mục "tmp".
A.Aleem11

1
Có, và bạn nói rằng các quyền nên có 0777trong khi thực tế chúng phải như vậy 1777.
Kusalananda
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.