GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS / RHEL 7 で systemd-tmpfiles が /tmp/ または /var/tmp (tmpwatch の置き換え) をクリーンアップする方法

CentOS/RHEL 7 では、tmpfiles は未使用のファイルを削除して /tmp または /var/tmp をクリーンアップします。この機能は「tmpwatch」と呼ばれていました CentOS/RHEL 6 では crond で起動していましたが、CentOS/RHEL 7 では systemd のタイマーで実現するようになりました。

現在、tmpfiles の詳細な機能は構成ファイルに記述されています:

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

簡単に言えば、利用可能な機能は次のとおりです:

  • /tmp 内のファイル/ディレクトリの削除 10 日以上アクセスされていない (tmp.conf で定義) )
  • /var/tmp のファイル/ディレクトリを削除する 30 日以上アクセスされていない (tmp.conf で定義) )
  • 削除されないファイルがいくつかあります (tmp.conf で定義)
  • 削除コマンドは「/usr/bin/systemd-tmpfiles –clean」です 「(systemd-tmpfiles-clean.service で定義 )

アクセスされていません 」は atime を全てチェックして決定 /mtime /ctime ファイル/ディレクトリの.したがって、/tmp/ 内のファイルの atime/mtime/ctime のいずれかが 10 日より新しい場合、ファイルは削除されません。 /tmp/ 内のファイル/ディレクトリが 10 日以上経過しているように見えても tmpfiles によって削除されない場合は、以下のようなデバッグ オプションを指定してコマンドを手動で実行することで理由を確認できます:

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

たとえば、以下は、ディレクトリ「/tmp/latest」が atime のために削除できないことを意図しています。

# 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

構成ファイルの例

以下は、デフォルト設定の 3 つのサンプル構成ファイル (未編集) です。

# 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. Debian – / var、/ homeを別のパーティションに移動しますか?

  2. /var/log/messages、/var/log/syslog、および/var/log/kern.logの違いは?

  3. CentOS / RHEL 5,6 で /tmp および /var/tmp ディレクトリ内のファイルの自動削除を無効にする方法

  1. バイナリを /bin、/sbin、/usr/bin、および /usr/sbin にインストールし、 --prefix および DESTDIR と対話します

  2. プロセスが実行されているフォルダーを見つける方法は?

  3. デフォルトの /tmp を /home/user/tmp に変更する方法

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Bash =〜正規表現とHttps://regex101.com/?

  3. Kubuntuがログイン時にエラーを表示する(file:///usr/share/sddm//themes/breeze/main.qml:noそのようなファイルまたはディレクトリ)?