Apache PrivateTmp 파일의 정리 간격을 기본 30일에서 6시간으로 변경하려고 합니다. /etc/tmpfiles.d/tmp.conf
편집하는 대신 재정 의 파일을 설정해야 하는 시간 간격을 편집하기 위해 읽었으므로 /usr/lib/tmpfiles.d/tmp.conf
다음 줄을 사용하여 파일을 만들었습니다.
# override the default cleanup intervals
v /tmp 1777 root root 6h
v /var/tmp 1777 root root 6h
이제 를 실행하면 systemd-tmpfiles --clean
예상되는 파일이 삭제되므로 이 부분이 작동합니다.
그러나 1d로 설정 /usr/lib/systemd/system/systemd-tmpfiles-clean.timer
되었습니다 . OnUnitActiveSec
이는 6시간의 청소 간격이 사실상 하루에 한 번으로 제한된다는 의미라고 생각합니다.
타이머 간격을 6시간 이하로 변경할 수 있지만 이 파일을 직접 편집해야 합니까, 아니면 이와 같은 덮어쓰기 파일을 만들어야 합니까 /etc/tmpfiles.d
?
고쳐 쓰다:tmp.conf
이 질문은 중복으로 표시되어 있지만 연결된 질문에는 이와 동일한 오버레이 파일을 사용해야 하는지에 대한 내용이 표시되지 않습니다 .
해결책:분명히 질문이 중복으로 표시되었기 때문에 이것을 답변으로 게시할 수 없습니다. 하지만 이것이 타이머 간격을 변경하기 위해 오버레이 파일을 만드는 방법입니다.
기존 타이머 파일을 적절한 오버레이 디렉터리에 복사합니다.
sudo cp /usr/lib/systemd/system/systemd-tmpfiles-clean.timer /etc/systemd/system
새 복사본을 편집합니다(1d 값을 1h로 변경).
sudo nano /etc/systemd/system/systemd-tmpfiles-clean.timer
새 타이머 파일 로드:
sudo systemctl daemon-reload
새로운 타이머 간격이 로드되었는지 확인합니다.
sudo systemctl list-timers
답변1
이 답변은 약간 늦었지만 다른 사람이 우연히 발견할 경우를 대비해 여기에 남겨 두겠습니다.
systemd
오버레이 작동 방식의 기본 메커니즘을 이해하는 것이 중요하다고 생각합니다 . 귀하의 솔루션은 낮은 수준의 구현 세부 사항과 수동으로 재정의를 만드는 방법을 이해하고 있음을 보여줍니다. 이는 좋은 것입니다.
완벽함과 모범 사례 확산을 위해 내장 systemctl
함수를 사용하여 재정의를 생성해야 합니다(주석에서 @muru가 언급한 대로). 예를 들어:
sudo systemctl edit systemd-tmpfiles-clean.timer
예를 들어 이렇게 하면 파일에 대한 권한이 올바르게 설정되고 기본 추상화에 의존하여 오류가 발생할 가능성이 줄어듭니다.
장치를 구성하는 구성 요소를 보려면 systemctl cat
다음 명령을 사용하십시오.
sudo systemctl cat systemd-tmpfiles-clean.timer
# /usr/lib/systemd/system/systemd-tmpfiles-clean.timer
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
# /etc/systemd/system/systemd-tmpfiles-clean.timer.d/override.conf
[Timer]
# reset existing triggers
OnBootSec=
OnUnitActiveSec=
# add new triggers
OnBootSec=15min
OnUnitActiveSec=60min