時間だけで(起動時ではない)tmpfiles.dのファイルを削除できますか?

時間だけで(起動時ではない)tmpfiles.dのファイルを削除できますか?

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

ディレクトリの内容は削除しないでください。よりドキュメントdDオプション、これは次のとおりです。

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削除済み)。 )

関連情報