/ Tmp ne zaman temizlenir?


143

Çeşitli dosyaları koymak için alıyorum /tmpve onları silmekle ilgili kuralları merak ettim.

Farklı dağıtımlar için farklı olduğunu hayal ediyorum ve özellikle Ubuntu ve Fedora masaüstü sürümleriyle ilgileniyorum.

Ancak öğrenmenin güzel bir genel yolu çok iyi olurdu.

Daha da iyisi, onu kontrol etmenin güzel bir genel yolu olurdu! ('Sabahları her gün 3'te her gün, /tmp60 günden eski dosyaları silin , ancak yeniden başlatırken dizini silmeyin ' gibi)


Yanıtlar:


155

Bu senin dağılımına bağlı. Bazı sistemlerde, yalnızca önyükleme yapıldığında silinir, diğerleri n saatten daha eski öğeleri silmeye çalışan cronjob'lara sahiptir .

  • Debian benzeri sistemlerde: açılışta (kurallar tanımlanmıştır /etc/default/rcS).
  • RedHat benzeri sistemlerde: yaşlarına göre (RHEL6 öyleydi /etc/cron.daily/tmpwatch; RHEL7 ve RedHat benzeri sistemiyle yapılandırılmış /usr/lib/tmpfiles.d/tmp.conf, denir systemd-tmpfiles-clean.service).
  • Gentoo’da /etc/conf.d/bootmisc.

19
Bu ne zaman olursa olsun, güvenli olan anlar genellikle kurulumdan hemen sonra önyüklemededir, çünkü çalışan işlemler orada dosyalara kilitlenmiş olabilir ve bunlar silinmemelidir.
adaptr

Bunları periyodik olarak kaldırabilecek paketler de vardır.
Samuel Edwin Ward,

2
Sistemli RedHat benzeri sistemlerde (centos7 / rhel7), /usr/lib/tmpfiles.d/tmp.conf. Sistemin hedefi tarafından denir systemd-tmpfiles-clean.service.
Franklin Piat

1
Eski Debian'da, tmpreaperpaketini düşünebilirsiniz , bunun çatallı sürümü tmpwatch.
Věroš K. 12:17

Ubuntu 19.04:cat: /etc/default/rcS: No such file or directory
Boris

24

CentOS’ta (ve Fedora’yı kabul ediyorum), /etc/cron.daily adlı bir iş var tmpwatch. Bu çalıştırır /usr/sbin/tmpwatchsaat belirtilen sayıda erişilmeyen dosyaları silmek, hangi, yani varsayılan davranış incelemektir atimeo son kullanılan Girilmişse değerlendirmek için dosya için.

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

Diğer dağıtımlar (ve kurulumlar), bellek içi bir dosya sistemi olan tmpfs olarak monte edilmiş / tmp'ye sahip olabilir. Bu açılışta silinecek.


CentOS 7.4'te buna sahip değilim.
Kevin Lemaire

@KevinLemaire İşlevsellik bir sistem hizmetine taşındı. lists.centos.org/pipermail/centos/2014-October/147155.html
CJC

Eğer tmpwatch dosyasını bulamadıysanız, tmpwatch'ı kullanarakyum install tmpwatch
Ng Sek Long

Diğer dağıtımlarda tmpwatch alabilir miyim? Kulağa harika geliyor. Debian merkezli dağıtım yapıyorum
Jonathan

sudo find /tmp -type f -atime +10 -delete10 günde erişilmeyen tmp dosyalarını siler, dikkatli kullanın
Jonathan

13

Kullandığım Ubuntu 11.10'da, içinde bir başlangıç betiği var /etc/init/mounted-tmp.conf. Bunun başlangıcı şöyle diyor:

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

Daha ayrıntılı olarak okuyabilirsiniz, ancak genelde /tmpmonte edildiğinde veya /usrmonte edildiğinde temizlenir . Bu, önyükleme sırasında düzenli olarak gerçekleşir, bu nedenle /tmptemizleme her önyüklemede gerçekleştirilir.

Gelen /etc/default/rcSsen gelmiş TMPTIMEset, iki beslemek için yukarıdaki başlatma betiğindeki kullanıldığı findtemelde (değişti, erişilen değişik şekli) onların zamanlarda dayalı dosya silme kontrol - ucunda komutları.


5

RHEL 6.2'de, / tmp içindeki dosyalar 10 gün içinde erişilmezlerse tmpwatch ile silinir.

/Etc/cron.daily/tmpwatch dosyası, tmpwatch'ın çağrılma şeklini tanımlar.

#! /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 argümanları dışlanacak dosyalardır. En son 2. argüman, erişilen son zamandan sonra beklenecek zamandır. Son argüman incelenecek dizindir.


5

Fedora 18'den itibaren, varsayılan olarak /tmpüzerine tmpfs(yani RAM) monte edilir ve bu nedenle güç kapatılır.

Bu davranış, verme systemctl mask tmp.mountve yeniden başlatma (ve verme systemctl unmask tmp.mountve yeniden başlatma yoluyla yeniden etkinleştirme) tarafından devre dışı bırakılabilir ve daha sonra dosya sistemine /tmpmonte edilir /ve /usr/lib/tmpfiles.d/tmp.confayarlarla kontrol edilebilir .

Her bir vaka hakkında daha fazla ayrıntı için http://fedoraproject.org/wiki/Features/tmp-on-tmpfs ve man tmpfiles.ddiğer detaylara bakın .


3

OpenSUSE 13.2'de, temizleme davranışı sysconfig dosyasında aşağıdaki değişkenle kontrol edilebilir.

  • 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

Bu değişkenleri şu şekilde değiştirebilirsiniz (her değişkenin kullanımı orada da bulunabilir).

  1. Edit /etc/sysconfig/cronkomut satırında elle dosyayı.
  2. Yast'ı açın ve Sistem -> / etc / sysconfig içine gidin Editör -> Sistem -> Cron

2

Daha da iyisi, onu kontrol etmenin güzel bir genel yolu olurdu! ('Sabahları her gün 3'te her gün, 60 günden daha eski olan her / tmp dosyasını silin, ancak yeniden başlatırken dizini silmeyin' gibi bir şey)

Açılışta silinmesini istemediğiniz sorta tempy dosyaları / var / tmp dizininde

Bu onun için :-)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.