애플리케이션별(읽기-쓰기) 데이터(예: 로그 파일, 구성 및 기타 애플리케이션별 메타데이터)가 포함된 시스템 전체 디렉터리를 만들고 싶습니다.
Linux 파일 시스템에 대해 자세히 읽은 후 사용을 고려했지만 /var/app_name/
일부 하위 디렉터리가 임시라는 사실을 알게 되었습니다(예: run
, log
, 등 재부팅 후에도 지속되지 않음 tmp
).
이것이 얼마나 중요합니까? 제 말은, 다른 디렉터리(예 /home/app_name/
: )를 사용해야 할까요, 아니면 /var/app_name/
괜찮을까요?
답변1
~에서파일 시스템 계층 표준:
응용 프로그램은 일반적으로 /var의 최상위 수준에 디렉터리를 추가해서는 안 됩니다. 그러한 디렉토리는 시스템 전체에 영향을 미칠 경우에만 추가해야 하며 FHS 메일링 목록을 참조해야 합니다.
/etc/app_name/
프로그램의 구성 파일과 기타 콘텐츠를 저장하고 /var/log/app_name/
로그 파일을 저장하는 데 사용해야 합니다 .
애플리케이션에서 사용하는 데이터의 경우 다음을 저장할 수 있습니다.
- 영구
/var/lib/app_name/
데이터 및 메타데이터 /var/cache/app_name/
안전하게 삭제할 수 있는 모든 애플리케이션 캐시/var/spool/app_name/
처리 대기 중인 데이터
정말사용하지 마세요 /home/app_name/
사용자를 위해 예약된 홈디렉터리애플리케이션 이름. 프로그램을 실행할 특정 사용자를 생성해야 하는 경우 여기로 이동합니다.
의견의 질문과 관련하여 Linux는 사용자가 입력한 모든 회전 로그를 자동으로 삭제하지 않습니다 /var/log/
. 실제로 시스템 관리자는 로그가 모든 공간을 채우는 정반대의 문제에 직면하는 경우가 많습니다. 따라서 로그 파일을 삭제하거나 교체하는 것은 logrotate
사용자 정의 cron 작업을 통해 수행됩니다.
답변2
/var/app_name
이름이 지정된 애플리케이션에 대한 영구 데이터를 저장하는 데 사용하는 것이 안전해야 합니다 app_name
.
예를 들어, 현재 사용 중인 시스템에서 PostgreSQL 및 MySQL(MariaDB)의 기본 데이터베이스 디렉터리는 입니다 /var/postgresql
./var/mysql
/var/tmp
임시 파일에만 사용해야 하지만 시스템이 이 디렉터리를 지울 가능성은 없습니다(예를 들어 재부팅 시와는 다름 /tmp
). /var/run
PID 파일과 명명된 소켓을 저장하는 데 가장 일반적으로 사용됩니다.
나는 개인 계정 디렉토리와 가장 일반적으로 관련된 것들을 피할 것입니다 /home/app_name
./home
또한보십시오:https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
애플리케이션은 구성 파일을 에 /etc
, 로그 파일을 에 /var/log
, 데이터를 에 저장하도록 선택할 수 있습니다 /var/app_name
. 위에서 예로 사용한 PostgreSQL과 MariaDB에서는 시스템 시작 후크를 제외한 모든 것을 /var
.