본문 바로가기

개발노트/LINUX

[Centos7] Paths 가 만들어 내는 임시 파일은 내가 지우지 않아도 될까?

요즘 스프링 부트로 파일 업/다운로드 시스템을 구현하고 있다.

여러 프로젝트에 흩어져 있고 제각각인 구현 방법과 어느 시스템에서 이 파일을 만들고 업로드했는지 찾는데 드는 비용이 만만치 않아서, 시스템을 일원화 하기로 했다.


그렇게 java.nio.file.* 패키지를 이용하여 개발하는 중, Files.createTempFile() 라는 메소드를 봤는데 이 API 가 생성하는 파일이 계속 쌓이는 건 아닐까 하는 노파심/걱정이 생겼다.


그래서 조금 찾아봤다.

서버의 운영체제 배포판은 Centos 7 이고

`java.io.tmpdir` 에 대해서 별다른 설정을 하지 않은 Spring Boot 앱은 `/tmp` 디렉토리를 임시 파일 공간으로 사용하고 있다.

그렇다면, /tmp 디렉토리는 자바 뿐만이 아니라 리눅스도 사용하는 공간일텐데, 언제 비워지는지 찾아보았다.


별 다른 설정을 하지 않으면 age 기반으로 10일이 지나면 파일을 삭제된다.

이 정도면 괜찮을 것 같지만, production 서버 구축할 때는 10d 를 1~3d 로 수정해야할 지도 모르겠다.


/usr/lib/tmpfiles.d/tmp.conf 파일 수정 후에는 systemd-tmpfiles-clean.service 서비스를 재시작 해주면 될 것 같다. (아직 안 해봤...)


https://serverfault.com/questions/377348/when-does-tmp-get-cleared 여기 간결하게 잘 설명이 되어 있다.