一時ファイルをクリーンアップするには、次の設定を使用しました(CentOS 7の場合はデフォルト)。これは/tmp
、ファイルが10日より古い場合は削除する必要があることを示します。
[root]# tail -n +10 /usr/lib/tmpfiles.d/tmp.conf | head -n 3
# Clear tmp directories separately, to make them easier to override
d /tmp 1777 root root 10d
d /var/tmp 1777 root root 30d
ところで実行してからもsystemd-tmpfiles --clean
内容を見ると/tmp
10日を超えるファイルが入っています。
[root]# ls -dl /tmp/backup-inspection
drwxr-xr-x 8 root root 68 Aug 29 2014 /tmp/backup-inspection
このディレクトリの内容は/tmp
かなり大きいです。
[root]# du -h /tmp | tail -n 1
3.5G /tmp
backup-inspection
このディレクトリが削除されない理由を説明できる人はいますか?すでにほぼ1歳になりましたか?
ベストアンサー1
最近、同じ問題に直面してこの問題を発見し、経験を共有しています。
実際には、systemd-tmpfiles
期待どおりに再帰ディレクトリツリー処理が完全にサポートされています(他の答えはソースコードを確認するのに十分混乱しています)。私の場合、atime
ファイルが削除されない理由は。systemd-tmpfiles
ctime
mtime
atime
systemd-tmpfiles
実際には、ファイルをスキップするための内部ルールが多いため、他の理由がある可能性があります。一部のファイルが削除されなかった理由を確認するには、systemd-tmpfiles
次のコマンドを実行します。
env SYSTEMD_LOG_LEVEL=debug systemd-tmpfiles --clean
コンソールに多くの出力をダンプできます。stdout
たとえば、ファイルにリダイレクトしようとすると、出力は消えてsystemdログに送信されます(たとえば、経由で取得できますjournalctl
)。私の場合は、出力も途中で切り捨てて(または使い方を知らなかったためjournalctl
)、ターミナルエミュレータの履歴バッファを一時的に増やすことが解決策でした。