Pertanyaan Kapan / tmp dibersihkan?


Saya mengambil untuk memasukkan berbagai file /tmp, dan aku bertanya-tanya tentang aturan untuk menghapusnya?

Saya membayangkan itu berbeda untuk distribusi yang berbeda, dan saya sangat tertarik pada versi desktop Ubuntu dan Fedora.

Tapi cara umum yang bagus untuk mencari tahu akan menjadi hal yang hebat.

Bahkan lebih baik akan menjadi cara umum yang bagus untuk mengendalikannya! (Sesuatu seperti 'setiap hari pukul 3 pagi, hapus apa saja /tmp file yang lebih lama dari 60 hari, tetapi tidak menghapus direktori saat reboot ')


117
2018-04-06 15:09






Jawaban:


Itu tergantung pada distribusi Anda. Pada beberapa sistem, itu hanya dihapus ketika boot, yang lain memiliki cronjobs menjalankan menghapus item yang lebih tua dari n jam.

  • Pada sistem mirip Debian: saat boot (aturan didefinisikan dalam /etc/default/rcS).
  • Pada sistem RedHat-like: berdasarkan usia (RHEL6 itu /etc/cron.daily/tmpwatch ; RHEL7 dan RedHat-like dengan sistemd dikonfigurasi dalam /usr/lib/tmpfiles.d/tmp.conf, dipanggil oleh systemd-tmpfiles-clean.service).
  • Di Gentoo /etc/conf.d/bootmisc.

130
2018-04-06 15:12



Dan terlepas dari kapan ini terjadi, satu-satunya saat yang aman umumnya saat boot, tepat setelah pemasangan, karena proses yang berjalan mungkin memiliki file terkunci di sana, dan ini tidak boleh dihapus. - adaptr
Ada juga paket yang tersedia yang dapat menghapusnya secara berkala. - Samuel Edwin Ward
Pada sistem RedHat-like dengan systemd (centos7 / rhel7), ini dikonfigurasi di /usr/lib/tmpfiles.d/tmp.conf. Ini disebut oleh target sistem systemd-tmpfiles-clean.service. - Franklin Piat
Di legacy Debian, Anda bisa mempertimbangkan tmpreaper paket, itu versi bercabang tmpwatch. - Věroš K.


Di CentOS (dan saya berasumsi Fedora), ada pekerjaan di /etc/cron.daily yang disebut tmpwatch. Ini berjalan /usr/sbin/tmpwatch, yang akan menghapus file yang belum diakses dalam jumlah jam yang ditentukan, yaitu, perilaku default untuk memeriksa atime untuk file untuk mengevaluasi jika sudah digunakan baru-baru ini.

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

Distro lain (dan instalasi) mungkin / tmp di-mount sebagai tmpfs, yang merupakan sistem file di-memori. Ini akan dibersihkan saat boot.


23
2018-04-06 16:01



Saya tidak memiliki ini di CentOS 7.4. - Kevin Lemaire
@KevinLemaire Fungsionalitas dipindahkan ke layanan sistem. lists.centos.org/pipermail/centos/2014-October/147155.html - cjc


Pada Ubuntu 11.10 yang saya gunakan, ada sebuah pemula skrip masuk /etc/init/mounted-tmp.conf. Awal itu mengatakan ini:

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

Anda dapat membaca lebih detail, namun secara umum /tmp dibersihkan ketika sudah terpasang atau /usr sudah terpasang. Ini secara teratur terjadi saat boot, jadi ini /tmp pembersihan berjalan pada setiap boot.

Di /etc/default/rcS kamu punya TMPTIME set, yang digunakan dalam skrip init di atas untuk memberi makan keduanya find perintah pada akhirnya - pada dasarnya mengendalikan penghapusan file berdasarkan waktu mereka (diubah, diubah, diakses).


12
2018-04-06 15:31





Pada RHEL 6.2 file dalam / tmp dihapus oleh tmpwatch jika mereka belum diakses dalam 10 hari.

File /etc/cron.daily/tmpwatch mendefinisikan cara tmpwatch dipanggil.

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

Argumen -x adalah file yang dikecualikan. Argumen ke dua hingga terakhir adalah waktu untuk menunggu setelah waktu akses terakhir. Argumen terakhir adalah direktori untuk diperiksa.


4
2018-05-29 21:31





Mulai dari Fedora 18, /tmp sudah terpasang tmpfs (yaitu RAM) secara default, dan dengan demikian terhapus saat dimatikan.

Perilaku ini dapat dinonaktifkan dengan menerbitkan systemctl mask tmp.mount dan reboot (dan diaktifkan kembali dengan menerbitkan systemctl unmask tmp.mount dan reboot), dan kemudian /tmp akan dipasang di / filesystem dan dapat dikontrol oleh /usr/lib/tmpfiles.d/tmp.conf pengaturan.

Lihat http://fedoraproject.org/wiki/Features/tmp-on-tmpfs dan man tmpfiles.d untuk detail lebih lanjut tentang setiap kasus.


4
2018-01-10 14:15





Pada openSUSE 13.2, perilaku kliring dapat dikontrol dengan variabel berikut di 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

Anda dapat memodifikasi variabel-variabel ini dengan (masing-masing penggunaan variabel juga dapat ditemukan di sana)

  1. Edit /etc/sysconfig/cron file secara manual di baris perintah.
  2. Buka Yast dan masuk ke System -> / etc / sysconfig Editor -> System -> Cron

3
2017-11-15 13:45





Bahkan lebih baik akan menjadi cara umum yang bagus untuk mengendalikannya! (Sesuatu seperti 'setiap hari pukul 3 pagi, hapus file / tmp lebih dari 60 hari, tetapi jangan kosongkan direktori saat reboot')

File sorta-tempy yang Anda tidak ingin dibersihkan saat boot masuk / var / tmp

Untuk itulah :-)


2
2018-04-07 05:01