Vraag Wanneer wordt / tmp gewist?


Ik neem er verschillende bestanden in op /tmpen ik vroeg me af wat de regels zijn om ze te verwijderen?

Ik stel me voor dat het anders is voor verschillende distributies, en ik ben vooral geïnteresseerd in Ubuntu en Fedora desktopversies.

Maar een mooie algemene manier om erachter te komen zou geweldig zijn.

Nog beter zou een mooie algemene manier zijn om het te beheersen! (Iets als 'elke dag om 3 uur' s ochtends, verwijder elke /tmp bestanden ouder dan 60 dagen, maar verwijder de map niet bij het opnieuw opstarten ')


117
2018-04-06 15:09


oorsprong




antwoorden:


Dat hangt af van uw distributie. Op sommige systemen wordt het alleen verwijderd als het wordt opgestart, andere hebben cronjobs die worden uitgevoerd bij het verwijderen van items die ouder zijn dan n uur.

  • Op Debian-achtige systemen: on boot (de regels zijn gedefinieerd in /etc/default/rcS).
  • Op RedHat-achtige systemen: op basis van leeftijd (RHEL6 was het /etc/cron.daily/tmpwatch ; RHEL7 en RedHat-achtig met systemd het is geconfigureerd in /usr/lib/tmpfiles.d/tmp.conf, gebeld door systemd-tmpfiles-clean.service).
  • Op Gentoo /etc/conf.d/bootmisc.

130
2018-04-06 15:12



En ongeacht wanneer dit gebeurt, is het enige veilige moment over het algemeen bij het opstarten, direct na het installeren, omdat bij lopende processen bestanden kunnen worden vergrendeld en deze niet mogen worden verwijderd. - adaptr
Er zijn ook pakketten beschikbaar die ze periodiek kunnen verwijderen. - Samuel Edwin Ward
Op RedHat-achtige systemen met systemd (centos7 / rhel7), is het geconfigureerd in /usr/lib/tmpfiles.d/tmp.conf. Het wordt genoemd door het doel van systemd systemd-tmpfiles-clean.service. - Franklin Piat
Over legacy Debian, kunt u overwegen tmpreaper pakket, het is gevorkte versie van tmpwatch. - Věroš K.


Op CentOS (en ik neem aan dat Fedora) is er een klus in /etc/cron.daily gebeld tmpwatch. Dit loopt /usr/sbin/tmpwatch, die bestanden zal verwijderen die niet zijn benaderd in het gespecificeerde aantal uren, d.w.z. het standaardgedrag is het onderzoeken van de atime voor het bestand om te evalueren of het recent is gebruikt.

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

Andere distros (en installaties) kunnen / tmp gemount zijn als tmpfs, wat een in-memory bestandssysteem is. Dit wordt gewist bij het opstarten.


23
2018-04-06 16:01



Ik heb dit niet op CentOS 7.4. - Kevin Lemaire
@KevinLemaire De functionaliteit is verplaatst naar een systemd-service. lists.centos.org/pipermail/centos/2014-October/147155.html - cjc


Op Ubuntu 11.10 die ik gebruik, is er een parvenu script in /etc/init/mounted-tmp.conf. De start ervan zegt dit:

# 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)

U kunt meer details echter in het algemeen lezen /tmp wordt schoongemaakt wanneer het is gemount of /usr is bereden. Dit gebeurt regelmatig tijdens het opstarten, dus dit /tmp schoonmaak draait op elke boot.

In /etc/default/rcS jij hebt TMPTIME set, die in het bovenstaande init-script wordt gebruikt om de twee te voeden find commando's aan het einde - in feite controle over het verwijderen van bestanden op basis van hun tijden (gewijzigd, gewijzigd, geopend).


12
2018-04-06 15:31





Op RHEL 6.2 worden de bestanden in / tmp verwijderd door tmpwatch als ze niet binnen 10 dagen zijn geopend.

Het bestand /etc/cron.daily/tmpwatch definieert de manier waarop tmpwatch wordt aangeroepen.

#! /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

De -x argumenten zijn bestanden die moeten worden uitgesloten. Het voorlaatste argument is de tijd om te wachten na de laatst gebruikte tijd. Het laatste argument is de map die moet worden bekeken.


4
2018-05-29 21:31





Van Fedora 18 op, /tmp is gemonteerd op tmpfs (dat wil zeggen RAM) standaard, en dus gewist bij uitschakelen.

Dit gedrag kan worden uitgeschakeld door te geven systemctl mask tmp.mount en herstart (en opnieuw ingeschakeld door uitgifte systemctl unmask tmp.mount en opnieuw opstarten) en vervolgens /tmp zal worden gemonteerd op de / bestandssysteem en kan worden beheerd door /usr/lib/tmpfiles.d/tmp.conf instellingen.

Zien http://fedoraproject.org/wiki/Features/tmp-on-tmpfs en man tmpfiles.d voor meer informatie over elk geval.


4
2018-01-10 14:15





Op openSUSE 13.2 kan het opruimgedrag worden bestuurd met de volgende variabele in 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

U kunt deze variabelen aanpassen door (het gebruik van elke variabele kan daar ook worden gevonden)

  1. Bewerk de /etc/sysconfig/cron bestand handmatig in opdrachtregel.
  2. Open Yast en navigeer naar Systeem -> / etc / sysconfig Editor -> Systeem -> Cron

3
2017-11-15 13:45





Nog beter zou een mooie algemene manier zijn om het te beheersen! (Iets als 'elke dag om 3 uur' s morgens, verwijder alle / tmp-bestanden die ouder zijn dan 60 dagen, maar wis de map niet bij het opnieuw opstarten ')

Sorta-tempy-bestanden die u niet wilt wissen tijdens het opstarten van de boot in / var / tmp

Daar is het voor :-)


2
2018-04-07 05:01