systemd tmpfiles.dを使用して起動時ではなく時間ベースでのみクリーンアップする方法はありますか?
「d」と「D」を試しました。
#/etc/tmpfiles.d/tmp.conf
d /var/tmp 1777 root root 30d
そして
#/etc/tmpfiles.d/tmp.conf
D /var/tmp 1777 root root 30d
ただし、これにより起動時にファイルがすべて消去されます。
ちなみに私はDebian 9(Stretch)を実行しています。デフォルトの構成ファイルを使用している場合、tmpfiles.dは/ var / tmpからファイルを削除しません(開始時または期間に基づいて)。
答え1
最初の行は正しいです。
#/etc/tmpfiles.d/tmp.conf
d /var/tmp 1777 root root 30d
ディレクトリの内容は削除しないでください。よりドキュメントd
とD
オプション、これは次のとおりです。
d
ディレクトリを作成します。指定し、ディレクトリがすでに存在する場合、モードと所有権が調整されます。 Ageパラメータが指定されている場合、このディレクトリの内容は時間ベースのスクラブの対象となります。
D
--removeに似ています
d
が、--removeを使用するとディレクトリの内容が削除されます。
これは、システムにすでに存在する他の設定(次に提供されている/usr/lib/tmpfiles.d/*.conf
ファイルの1つ)と競合する可能性があります。
tmp.conf
さらに、名前付きファイルを作成すると、/etc/tmpfiles.d/
同じ名前のファイルが存在する/usr/lib/tmpfiles.d/tmp.conf
場合は非表示になります(systemdは通常これを提供します)、維持したい構成を誤って削除する可能性があります。 (これは、その構成をオーバーライドできるように削除する方法でもあります。)
システムのバージョンが十分に新しい場合は、次のコマンドを試すことができます。systemd-tmpfiles --cat-config
邪魔になる可能性がある他の予期しない行を特定するのに役立つ可能性のある完全な構成を表示したり、新しい構成ファイルを削除したりするときに、「以前」と「以降」を比較します(例:同じ名前の削除された構成/var/tmp
ファイルの行表示)。/usr
削除済み)。 )