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
에 제공된 파일 중 하나)과 충돌할 수 있습니다.
tmp.conf
또한 에 이름이 지정된 파일을 생성하는 경우 /etc/tmpfiles.d/
동일한 이름의 파일이 /usr/lib/tmpfiles.d/tmp.conf
있으면 숨겨지므로(systemd는 일반적으로 이를 제공함) 유지하려는 구성을 실수로 제거할 수 있습니다. (이는 해당 구성을 재정의할 수 있도록 삭제하는 방법이기도 합니다.)
시스템 버전이 충분히 새로운 경우 다음 명령을 시도해 볼 수 있습니다.systemd-tmpfiles --cat-config
방해할 수 있는 다른 예상치 못한 줄을 확인하는 데 도움이 될 수 있는 전체 구성을 보거나 새 구성 파일을 삭제할 때 "이전"과 "이후"를 비교합니다(예: 삭제된 /var/tmp
동일한 이름을 가진 구성 파일의 줄 표시). /usr
삭제됨). )