GNU/Linux >> Belajar Linux >  >> Cent OS

Bagaimana systemd-tmpfiles membersihkan /tmp/ atau /var/tmp (pengganti tmpwatch) di CentOS / RHEL 7

Di CentOS/RHEL 7, tmpfiles membersihkan /tmp atau /var/tmp dengan menghapus file yang tidak digunakan. Fungsi ini disebut “tmpwatch ” di CentOS/RHEL 6 yang dipanggil oleh crond, namun sekarang direalisasikan oleh timer systemd pada CentOS/RHEL 7.

Saat ini fungsi rinci tmpfiles dijelaskan dalam file konfigurasi:

/usr/lib/systemd/system/systemd-tmpfiles-clean.timer
/usr/lib/systemd/system/systemd-tmpfiles-clean.service
/usr/lib/tmpfiles.d/tmp.conf

Singkatnya, fungsi yang tersedia adalah:

  • menghapus file/direktori di /tmp tidak diakses lebih dari 10 hari (didefinisikan dalam tmp.conf )
  • menghapus file/direktori di /var/tmp tidak diakses lebih dari 30 hari (didefinisikan dalam tmp.conf )
  • ada beberapa file yang tidak akan dihapus (didefinisikan di tmp.conf)
  • perintah penghapusannya adalah “/usr/bin/systemd-tmpfiles –clean “(didefinisikan dalam systemd-tmpfiles-clean.service )

tidak dapat diakses ” diputuskan dengan mencentang semua waktu /mtime /waktu dari file/direktori. Jadi, jika salah satu dari atime/mtime/ctime dari file di /tmp/ lebih baru dari 10 hari, file tersebut tidak akan dihapus. Jika file/direktori di /tmp/ tidak dihapus oleh tmpfiles meskipun tampaknya lebih dari 10 hari, alasannya dapat diperiksa dengan menjalankan perintah dengan opsi debug seperti di bawah ini secara manual:

# SYSTEMD_LOG_TARGET=console SYSTEMD_LOG_LEVEL=debug /usr/bin/systemd-tmpfiles --clean

Misalnya, di bawah ini bermaksud agar direktori “/tmp/latest” tidak dapat dihapus karena waktunya.

# SYSTEMD_LOG_TARGET=console SYSTEMD_LOG_LEVEL=debug /usr/bin/systemd-tmpfiles --clean 2>&1 | grep latest
Directory "/tmp/latest": access time Wed 2017-12-06 16:56:28.771577 IST is too new

Contoh file konfigurasi

Di bawah ini adalah 3 contoh file konfigurasi (belum diedit) dengan pengaturan defaultnya.

# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer
[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)

[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
# cat /usr/lib/tmpfiles.d/tmp.conf
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d

# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp
# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.service
[Unit]
Description=Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target time-sync.target
Before=shutdown.target

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


Cent OS
  1. Kubuntu Menunjukkan Kesalahan Saat Masuk (file:///usr/share/sddm//themes/breeze/main.qml:no File Atau Direktori Tersebut)?

  2. Bagaimana File/Direktori di /tmp Dihapus Secara Otomatis di CentOS/RHEL 5,6

  3. CentOS/RHEL:/tmp mount point tidak dipasang secara otomatis saat ditambahkan di /etc/fstab

  1. CentOS / RHEL :Cara memutar file /var/log/wtmp dan /var/log/btmp menggunakan logrotate

  2. Cara menonaktifkan penghapusan otomatis file di direktori /tmp dan /var/tmp di CentOS / RHEL 5,6

  3. Instal binari ke /bin, /sbin, /usr/bin dan /usr/sbin, interaksi dengan --prefix dan DESTDIR

  1. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  2. Mengapa meletakkan hal-hal selain /home ke partisi terpisah?

  3. Bagaimana mengubah default /tmp ke /home/user/tmp