कब / tmp साफ़ हो जाता है?


143

मैं विभिन्न फाइलें डालने जा रहा हूं /tmp, और मैंने उन्हें हटाने के नियमों के बारे में सोचा?

मैं कल्पना कर रहा हूं कि यह अलग-अलग वितरणों के लिए अलग है, और मुझे उबंटू और फेडोरा डेस्कटॉप संस्करणों में विशेष रूप से दिलचस्पी है।

लेकिन यह पता लगाने का एक अच्छा सामान्य तरीका एक बड़ी बात होगी।

इससे भी बेहतर यह नियंत्रित करने का एक अच्छा सामान्य तरीका होगा! (कुछ ऐसा है 'हर दिन सुबह 3 बजे, /tmp60 दिनों से अधिक पुरानी किसी भी फ़ाइल को हटाएं , लेकिन रिबूट पर निर्देशिका को साफ़ न करें')


जवाबों:


155

जो आपके वितरण पर निर्भर करता है। किसी सिस्टम पर, इसे केवल तब ही डिलीट किया जाता है जब बूट किया जाता है, अन्य में क्रोनॉजर्स होते हैं जो n घंटे से अधिक पुराने आइटम को हटा रहे हैं ।

  • डेबियन जैसी प्रणालियों पर: बूट पर (नियम परिभाषित हैं /etc/default/rcS)।
  • RedHat जैसी प्रणालियों पर: आयु (RHEL6 यह थी /etc/cron.daily/tmpwatch; RHEL7 और RedHat-जैसे systemd के साथ इसे कॉन्फ़िगर किया गया है /usr/lib/tmpfiles.d/tmp.conf, जिसे कॉल किया जाता है systemd-tmpfiles-clean.service)।
  • जेंटू पर /etc/conf.d/bootmisc

19
और ऐसा होने के बावजूद, एकमात्र सुरक्षित क्षण आमतौर पर बूट पर होता है, इसे माउंट करने के ठीक बाद, क्योंकि चलने वाली प्रक्रियाओं में फाइलें लॉक हो सकती हैं, और इन्हें हटाया नहीं जाना चाहिए।
एडाप्टर

ऐसे पैकेज भी उपलब्ध हैं जो उन्हें समय-समय पर हटा सकते हैं।
सैमुअल एडविन वार्ड

2
RedHat जैसी प्रणालियों पर systemd (centos7 / rhel7) के साथ, इसे /usr/lib/tmpfiles.d/tmp.conf में कॉन्फ़िगर किया गया है। इसे सिस्टमड के लक्ष्य द्वारा कहा जाता है systemd-tmpfiles-clean.service
फ्रैंकलिन पिअट

1
विरासत डेबियन पर, आप tmpreaperपैकेज पर विचार कर सकते हैं , यह काँटेदार संस्करण है tmpwatch
V 9roš K.

उबंटू 19.04:cat: /etc/default/rcS: No such file or directory
बोरिस

24

CentOS (और मैं फेडोरा मानती हूं) पर, /etc/cron.daily नामक एक नौकरी है tmpwatch। यह चलता है /usr/sbin/tmpwatch, जो उन फ़ाइलों को हटा देगा, जिन्हें निर्दिष्ट घंटों में एक्सेस नहीं किया गया है, यानी, डिफ़ॉल्ट व्यवहार को atimeफ़ाइल के मूल्यांकन के लिए जांचना है कि क्या यह हाल ही में उपयोग किया गया है।

http://linux.die.net/man/8/tmpwatch

अन्य डिस्ट्रोस (इंस्टॉलेशन) में tmpfs के रूप में माउंट / tmp हो सकता है, जो एक इन-मेमोरी फाइलसिस्टम है। यह बूट पर साफ हो जाएगा।


मैं CentOS 7.4 पर यह नहीं है।
केविन लेमायर

@KevinLemaire कार्यक्षमता को एक सिस्टमड सेवा में ले जाया गया था। lists.centos.org/pipermail/centos/2014-October/147155.html
cjc

अगर आपको tmpwatch फ़ाइल नहीं मिली है, तो आप tmpwatch का उपयोग करके डाउनलोड कर सकते हैंyum install tmpwatch
Ng Sek Long

क्या मुझे अन्य डिस्ट्रोफ पर टैम्पवाच मिल सकता है? बहुत बढ़िया लग रहा है। मैं डेबियन आधारित डिस्ट्रो पर हूं
जोनाथन

sudo find /tmp -type f -atime +10 -delete10 दिनों में एक्सेस नहीं की गई tmp फ़ाइलों को हटा देगा, देखभाल के साथ उपयोग करें
जोनाथन

13

उबंटू 11.10 पर जो मैं उपयोग कर रहा हूं, उसमें एक अपस्टार्ट स्क्रिप्ट है /etc/init/mounted-tmp.conf। इसकी शुरुआत यह कहती है:

# mounted-tmp - Clean /tmp directory
#
# Cleans up the /tmp directory when it does not exist as a temporary
# filesystem.

description "Clean /tmp directory"

start on (mounted MOUNTPOINT=/tmp) or (mounted MOUNTPOINT=/usr)

आप अधिक विवरण में पढ़ सकते हैं, हालांकि सामान्य तौर /tmpपर जब इसे या तो माउंट किया जाता है या /usrमाउंट किया जाता है। यह नियमित रूप से बूट पर होता है, इसलिए यह /tmpसफाई हर बूट पर चलती है।

में /etc/default/rcSआप है TMPTIMEनिर्धारित करते हैं, दो को खिलाने के लिए ऊपर init स्क्रिप्ट में प्रयोग किया जाता है जो findमूल रूप से अपने समय के आधार पर फ़ाइल हटाए जाने को नियंत्रित (संशोधित, बदल गया है, पहुँचा) - अपने अंत में आदेशों।


5

आरएचईएल 6.2 पर / tmp में फ़ाइलें tmpwatch द्वारा हटा दी जाती हैं यदि वे 10 दिनों में एक्सेस नहीं हुई हैं।

फ़ाइल /etc/cron.daily/tmpwatch जिस तरह से tmpwatch कहलाती है, उसे परिभाषित करती है।

#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
    -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
    -X '/tmp/hsperfdata_*' 10d /tmp

-X तर्क को बाहर करने के लिए फ़ाइलें हैं। दूसरा अंतिम तर्क अंतिम अभिगमन समय के बाद प्रतीक्षा करने का समय है। अंतिम तर्क की जांच करने के लिए निर्देशिका है।


5

फेडोरा 18 से, डिफ़ॉल्ट रूप से (यानी रैम) /tmpपर रखा गया है tmpfs, और इस प्रकार बिजली बंद हो गई है।

इस व्यवहार को जारी करने systemctl mask tmp.mountऔर रिबूट (और जारी करने और रिबूट द्वारा फिर से अक्षम) द्वारा अक्षम किया जा सकता है systemctl unmask tmp.mount, और फिर फाइल सिस्टम /tmpपर माउंट किया जाएगा /और /usr/lib/tmpfiles.d/tmp.confसेटिंग्स द्वारा नियंत्रित किया जा सकता है ।

Http://fedoraproject.org/wiki/Features/tmp-on-tmpfs देखें और man tmpfiles.dप्रत्येक मामले पर अधिक जानकारी के लिए देखें ।


3

OpenSUSE 13.2 पर, क्लियरिंग व्यवहार को sysconfig में निम्न चर के साथ नियंत्रित किया जा सकता है।

  • MAX_DAYS_IN_TMP
  • MAX_DAYS_IN_LONG_TMP
  • TMP_DIRS_TO_CLEAR
  • LONG_TMP_DIRS_TO_CLEAR
  • OWNER_TO_KEEP_IN_TMP
  • CLEAR_TMP_DIRS_AT_BOOTUP

आप इन चरों को संशोधित कर सकते हैं (प्रत्येक चर का उपयोग वहाँ भी पाया जा सकता है)

  1. /etc/sysconfig/cronकमांड लाइन में मैन्युअल रूप से फाइल को एडिट करें ।
  2. Yast खोलें और System -> / etc / sysconfig Editor -> System -> Cron में नेविगेट करें

2

इससे भी बेहतर यह नियंत्रित करने का एक अच्छा सामान्य तरीका होगा! (कुछ ऐसा 'हर दिन सुबह 3 बजे, 60 दिनों से अधिक पुरानी / tmp फ़ाइलों को हटाएं, लेकिन' लूट 'पर निर्देशिका को साफ़ न करें)

Sorta-tempy फाइलें जिन्हें आप बूट / var / tmp पर जाना नहीं चाहते हैं

कि यह क्या है :-)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.