Hogyan törli a / tmp könyvtárat?

262

Hogyan törli a/tmp könyvtárat? Automatikus? Ha igen, milyen gyakran kerül tisztításra?

    
készlet Olivier Lalonde 09.01.2011 20:26
forrás

8 válasz

178

Figyelem! Ez a válasz elavult, mivel legalább ubuntu 14.04. Tekintse meg a jelenlegi helyzetre vonatkozó egyéb válaszokat, és ha helyesnek bizonyulnak, akkor dühösen vigye át őket. Szintén írj észrevételt, így a linket az aktuális helyes válaszhoz adhatom.

14.04-kor kapcsolatban lásd: link

A 16.10-kor kapcsolatban lásd link

Régi válasz 2011-től:

A/tmp tisztítását a/etc/init/mounted-tmp.conf upstart szkript végzi el. A forgatókönyvet a/tmp minden alkalommal felfelé indítja. Gyakorlatilag ez minden booton történik.

A szkript nagyjából a következőket tartalmazza: ha egy/tmp fájl régebbi, mint a$TMPTIME days, akkor törölni fog.

A$TMPTIME alapértelmezett értéke 0, ami azt jelenti, hogy minden fájl és könyvtár a (z)/tmp -ban törlődik. $TMPTIME a/etc/default/rcS -ban definiált környezeti változó.

    
válasz adott lesmana 10.01.2011 01:17
forrás
135

A könyvtár alapértelmezés szerint minden rendszerindításkor törlődik, mert aTMPTIME alapértelmezés szerint 0.

Itt módosíthatja az időt a következő fájlban:

/etc/default/rcS

ATMPTIME azt mondja, hogy a tmp dir gyakori lesz a napokban törölve

    
válasz adott Max Ruf 09.01.2011 20:35
forrás
59

Míg a/tmp mappát nem lehet hosszú távon tárolni, esetenként kicsit hosszabb ideig tartani a dolgokat, mint a következő újraindításkor , ami alapértelmezett az Ubuntu rendszereken . Tudok egy-két alkalommal, hogy letöltöttem valamit a/tmp -ra a tesztelés során, újraindítottam a változtatások után, és újra elvesztettem az eredeti adatokat. Ez megváltoztatható, ha a/tmp fájlokat kicsit tovább szeretné tartani.

A/tmp tisztítási gyakoriság módosítása

Az alapértelmezett beállítás, amely a rendszert a/tmp újraindításakor törli a/etc/default/rcS fájlban. A megnézett érték aTMPTIME.

A (z)TMPTIME=0 jelenlegi értéke a fájlok életkorának ellenére újraindításkor törli a fájlokat. Ha módosítja ezt az értéket egy másik (pozitív) számra, a/tmp -ban a fájlok életben maradhatnak.

TMPTIME=7

Ez a beállítás lehetővé tenné, hogy a fájlok a/tmp -ban maradjanak, amíg egy hétig nem érnek el, majd törölni őket a következő újraindításkor. A negatív szám (TMPTIME=-1) azt mondja a rendszernek, hogy semmit sem töröl a/tmp -ban. Ez valószínűleg nem valami, amit akar, de elérhető.

    
válasz adott hhlp 09.01.2011 20:35
forrás
30

Ezt az Ubuntu 16.10-ben ellenőriztem. Megerősíthetem, hogy az / etc / default / rcS szerkesztése már nem hat, és a tmp fájlokat törli az újraindítás, függetlenül attól, hogy mit adott a fájlba. Mint más említi, a tmpreaper már nem használatos.

Szerintem a helyes válasz az, hogy az Ubuntu 16.10-nek új beállítása van. Van egy /etc/tmpfiles.d nevű mappa, amelyet a "tmpfiles.d" man oldalon írt le. Ebben a mappában egy konfigurációs fájlt kell elhelyezni annak ellenőrzésére, hogy a / tmp-t törölni kell-e. Ez az, amit csinálok, hogy megállítsam az újraindításokat a / tmp fájlok törléséhez, kivéve, ha 20 naposak:

#/etc/tmpfiles.d/tmp.conf

d /tmp 1777 root root 20d

Cserélje ki a "20d" -et "-" -ra, ha soha nem akarja törölni a fájlokat. Ez a legjobb erőfeszítésem, hogy a man oldal szinte megközelíthetetlen a részletekkel.

Az új beállítás előnye, hogy egy fájl tisztító még akkor is futtatható, ha a rendszer nem indít újra (mint mindig a szerveren). Ez egy nagy plusz, azt hiszem.

    
válasz adott pauljohn32 05.12.2016 05:10
forrás
26

Az Ubuntu 14.04-ben tmpreaper , amelyet naponta a cron-tól (/etc/cron.daily). A program konfigurálható a/etc/default/rcS és a/etc/tmpreaper.conf között.

    
válasz adott Martin Schröder 19.04.2016 14:00
forrás
10

14.04 előtt:

Minden újraindításkor tisztítódik.

    
válasz adott Utku Demir 09.01.2011 20:34
forrás
5

Az Ubuntu-t futtató kiszolgálók egyikén van egy szkript a fájlok eltávolításához a / tmp fájlban és éjjel is fut.

A szkript:

#!/bin/sh
# Clean file and dirs more than 3 days old in /tmp nightly

/usr/bin/find /tmp -type f -atime +2 -mtime +2  |xargs  /bin/rm -f &&

/usr/bin/find /tmp -type d -mtime +2 -exec /bin/rm -rf '{}' \; &&

/usr/bin/find /tmp -type l -ctime +2 |xargs /bin/rm -f &&

/usr/bin/find -L /tmp -mtime +2 -print -exec rm -f {} \;

Csak mentse el a fenti tartalmat a chmod 775 fájlba, és hozzon létre egy cron bejegyzést a futtatáshoz. Mivel ez egy webszerver, nyilvánvaló okokból nem akarjuk újraindítani.

    
válasz adott Paul 28.09.2011 06:54
forrás
4

Asystemd Ubuntu-ban (15.10 és újabb) ezt a systemd végzi, asystemd-tmpfiles-clean szolgáltatás és az időzítő használatával:

$ systemctl cat systemd-tmpfiles-clean.service 
# /lib/systemd/system/systemd-tmpfiles-clean.service
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
Conflicts=shutdown.target
After=local-fs.target time-sync.target
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/bin/systemd-tmpfiles --clean
IOSchedulingClass=idle

és

$ systemctl cat systemd-tmpfiles-clean.timer  
# /lib/systemd/system/systemd-tmpfiles-clean.timer
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)

[Timer]
OnBootSec=15min
OnUnitActiveSec=1d

Tehát asystemd-tmpfiles-clean a leállításkor fut, és naponta egyszer másként. A tisztított fájlok a másik válaszban megemlített/etc/tmpfiles.d -kal bővíthetõk.

Az időzítő viselkedését maga asystemctl edit systemd-tmpfiles-clean.timer paranccsal módosíthatja, és különböző systemdTimer konfigurációs beállításokat használhat (lásd man 5 systemd.timer ).

    
válasz adott muru 06.12.2017 18:11
forrás