오프라인 임시 데이터에 대한 규칙

오프라인 임시 데이터에 대한 규칙

작은 유틸리티를 작성할 때 가끔 작은 양의 데이터를 유지하고 싶을 때가 있습니다.~ 사이실행. 일반적으로 캐싱 목적이지만 프로그램이 데몬으로 실행되는 것을 원하지 않는 경우입니다. 이에 대한 합의가 있습니까? 파일을 만드는 /tmp것은 일반적으로 메모리에 보관되고 닫힐 때만 지워지기 때문에 당연해 보이지만 다른 방법이 있는지 궁금합니다. 또한 파일 이름을 지정하는 규칙이 있나요 /tmp?

답변1

시스템 관리자가 프로그램을 설치했고 가끔 데이터를 삭제해도 괜찮다면 아래에 디렉터리를 생성하세요./var/cache. 아래 파일은 시스템 관리자가 언제든지 삭제할 수 있지만 /var/cache일반적으로 시스템의 디스크 공간이 부족하지 않는 한 삭제되지 않습니다. 이를 통제할 수 없도록 관리하는 /var/cache/YOUR-DIRECTORY것은 애플리케이션의 책임입니다 .

시스템 관리자가 프로그램을 설치했으며 응용 프로그램 제어 없이 데이터를 절대 삭제해서는 안 되는 경우/var/lib.

이 목적 으로 사용하지 마십시오 /tmp. 재부팅 시 지워질 수 있습니다(종종 그렇습니다). /tmp애플리케이션에 대한 개별 호출 간에 유지되지 않는 데이터에만 적용됩니다. 둘 중 하나를 사용하지 마십시오 /var/tmp. 일반적으로 재부팅 시 삭제되지 않지만 시스템 관리자는 언제든지 삭제하도록 선택할 수 있습니다.

개별 사용자가 애플리케이션을 실행하고 각 사용자가 자신의 데이터세트를 갖고 있는 경우 파일은 사용자의 홈 디렉터리에 있어야 합니다. 다음을 사용하는 것 외에는 사용자 홈 디렉터리의 파일을 구성하기 위한 전통적인 Unix 표준이 없습니다.이름이 .("dotfile")로 시작하는 파일. 현대적인 기준이 있는데,XDGFreeDesktop 사양. 캐시 데이터(삭제가 가능하고 성능 외에는 영향을 주지 않음)의 경우 $XDG_CACHE_HOME기본적으로 로 설정된 아래 ~/.cache에 디렉터리를 생성 하거나 홈 디렉터리 바로 아래에 디렉터리를 생성합니다(이 경우) . (으로 시작하는 ).$XDG_DATA_HOME~/.local/share.

답변2

또한 , 전역적으로 쓰기가 가능 /run하지만 루트 권한이 필요하다는 관례가 있는 것 같습니다 . 비슷한 제한 사항이 있습니다./tmp/run/var

따라서 가장 좋은 옵션은 /tmp구성을 통해 일정을 예약하는 것입니다(사용자가 런타임 디렉터리를 지정할 수 있도록).

명명 규칙에 관한 한, 이곳은 자유로운 전역 공간인 것 같습니다. 원하는 식별자를 사용하고, 상식적인 원칙을 따르세요. /tmp/stuff비슷한 훌륭한 아이디어를 가진 다른 사람들에게 짓밟힐 가능성이 높기 때문에 이는 아마도 좋은 생각이 아닐 것입니다.

일부 애플리케이션은 Java 스타일 도메인을 기반으로 하는 네임스페이스를 사용하는 것으로 나타났습니다 .com.google.Chrome. 예를 들어 고유하고 누구에게나 이해가 되는 한 문제가 되지 않습니다. 그것이 어디서 왔는지에 대한 단서를 다른 사람들에게 제공한다면 보너스 포인트입니다.

관련 정보