Чи безпечно rm -rf / tmp / *?


29

Це те, що я багато робив у Windows, але після останнього фіаско я хочу переконатися. Чи безпечно це робити

sudo rm -rf /tmp/*

?


Це сервер, який постійно працює, або настільний апарат із щоденним відключенням?
користувач невідомий

Я хотів би запитати, чому ви хочете видалити файли в / tmp? Це тому, що воно заповнюється, чи це з міркувань конфіденційності? Якщо це космічна проблема, це може бути пов’язано з неправильно поведеною програмою, а може бути, що вона має бути на більшому розділі. Якщо є конфіденційність, існують інші альтернативи, такі як використання зашифрованих файлових систем, які ви можете розглянути.
Роб

Це може спричинити різні проблеми у вашій системі, але в основному це спрацює.
Peterh каже відновити Моніку

Відповіді:


19

Загалом, ні.

Якщо він заповнюється мотлохом, ви можете подивитися, яке програмне забезпечення не очищається після себе.

Ви також можете використовувати find для ідентифікації файлів, які не були змінені або доступні протягом тривалого часу, які, ймовірно, безпечні для видалення.


9
Погоджуйтесь з приспівом "ні" тут і доповненням, що більшість дистрибутивів Linux автоматично очищається /tmp/при запуску. Хоча це не обов'язково допомагає, якщо ми говоримо про сервер без перезавантаження EVER тут, одна можливість може бути запущена find ./ -type f -atime 14 -exec rm {} \; щотижня або близько того, щоб видалити будь-який звичайний файл, до якого не було доступно взагалі протягом останніх двох тижнів. ..
Шадур

find ./ -type f -atime 14 -deleteз gnu-find
користувач невідомий

@user, звичайно, припускають, що /tmpне використовується поточні параметри ядра, які relatimeоновлюються лише після зміни файлу, або noatime. У такому випадку atimeце не буде віддалено корисним.
ксенотеррацид

8

Справжня відповідь - це залежить. / tmp можуть використовуватися додатки, які вимагають наявності файлів блокування або тимчасових журналів для запуску, а може не робити. Там можуть бути посилання ... не впевнені, для чого, але це завжди можливо.

Вам слід дійсно подивитися на те, що там є, перш ніж ви вирішите його зняти. робити rf -rf * на що-небудь по суті є небезпечним.


3
У моїй системі журнали переходять до / var / log, lockfiles до / var / lock.
користувач невідомий

3
@user звичайно, для системних демонів ... це не обов'язково означає, що не існує блоків чи журналів для програми користувача, /tmpтому що звичайний користувач не може записати в /var/log|lockмене скрипт оболонки, який записує замок/tmp
xenoterracide

7

Ні. Наприклад, якщо на вашому комп'ютері працює база даних MySQL, яка знищить його сокет, або якщо ви використовуєте emacs як сервер, який знищить процес сервера. Є багато інших випадків, коли видалити ці файли не безпечно. Найкраще зробити це - написати сценарій, який перевіряє дату файлу і видаляє його лише у тому випадку, коли він старий.


Швидке запитання, коли ви говорите "що вб'є його сокет", що ви спілкуєтесь з "socket"?
Касим


2

Ні.

Але ви можете отримати рамковий диск для / tmp dir, тоді він буде порожнім після кожного перезавантаження системи. І як побічний ефект ваша система може стати трохи більшою швидкістю.

Google має багато інформації про tmpfs та / або ramfs.


Чи не звичайно очищати / tmp автоматично при перезапуску? Gentoo робить, і я думаю, що Ubuntu це робить, але минув такий час, як я його використав
Michael Mrozek

Ні, я не думаю, що похідні Debian такі як Ubuntu це роблять (все одно зараз). Але додати це досить просто, якщо вам це подобається.
Йохан

Ubuntu Matty (або як називається поточний випуск) робить. Але якщо ви не перезавантажуєте машину регулярно, це не відбудеться.
Роб

Гаразд, не перевіряв струм. Я зараз використовую трек LTS.
Йохан

Ubuntu, і кожен Linux, який я тестував раніше, робив: Knoppix, арахіс, Хеллоуїн, 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каталог повинен мати конкретні дозволи (наприклад, липкий біт).
Кусалаланда

Будь ласка, уважно прочитайте, що я сказав: Ви маєте рацію, можливо, існує багато стандартних утиліт оболонок, які записують тимчасові файли в каталог "/ tmp", тому я сказав створити новий каталог "tmp" і призначив повний дозвіл на це після перейменування старої існуючої каталог "tmp".
A.Aleem11

1
Так, і ви сказали, що дозволи повинні бути, 0777коли насправді вони повинні бути 1777.
Кусалаланда
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.