요즘 스프링 부트로 파일 업/다운로드 시스템을 구현하고 있다.
여러 프로젝트에 흩어져 있고 제각각인 구현 방법과 어느 시스템에서 이 파일을 만들고 업로드했는지 찾는데 드는 비용이 만만치 않아서, 시스템을 일원화 하기로 했다.
그렇게 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 여기 간결하게 잘 설명이 되어 있다.
반응형