/var/cache에 프로그램 코드를 저장하는 이유는 무엇입니까?

/var/cache에 프로그램 코드를 저장하는 이유는 무엇입니까?

Ubuntu에서 실행되는 Java/Tomcat 스택을 상속받았습니다. 충돌이 발생하여 다시 시작하려고 합니다. 프로그램 코드가 파일 시스템에서 찾은 구성 파일을 사용하고 있는 것 같습니다.

문제는 인계에서 다음 메모를 발견했다는 것입니다.

the app code is in /var/lib/tomcat6/webapps/PCRTiler
config and helping files are in /var/cache/tomcat6/work/PCRTiler
/work/PCRTiler is a symlink for /var/cache/tomcat6/work/PCRTiler

/var/cache 아래에는 tomcat6 디렉토리가 없습니다. 또한 작업에서/라는 심볼릭 링크를 찾을 수 없습니다. 기본 디렉터리가 제거되면 링크가 삭제됩니까?

프로그램별 코드를 /var/cache에 보관하는 것이 표준 관행이며 이 디렉토리는 어떤 방식으로든 영구적입니까?

편집하다

/var/cache 및 /var/lib에 복사되는 것으로 보이는 install.sh 스크립트를 찾았습니다.

#!/bin/bash
rm -rf /var/lib/tomcat6/webapps/PCRTiler
rm -rf /var/cache/tomcat6/work/PCRTiler
mkdir -p /var/lib/tomcat6/webapps/PCRTiler
mkdir -p /var/cache/tomcat6/work/PCRTiler
cp -r * /var/lib/tomcat6/webapps/PCRTiler
cp -r /var/lib/tomcat6/webapps/PCRTiler/cache_skel/* /var/cache/tomcat6/work/PCRTiler
chown -R tomcat:tomcat /var/cache/tomcat6/work/PCRTiler
chown -R root:root /var/lib/tomcat6/webapps/PCRTiler
service tomcat6 restart

답변1

의 지침에 따르면Linux 파일 시스템 계층:

/var/캐시

애플리케이션에서 캐시된 데이터를 위한 것입니다. 이러한 데이터는 시간이 많이 걸리는 I/O 또는 계산의 결과로 로컬에서 생성됩니다. 이 데이터는 일반적으로 재생성되거나 복원될 수 있습니다. /var/spool과 달리 여기의 파일은 데이터 손실 없이 삭제할 수 있습니다. 이 데이터는 애플리케이션 호출과 시스템 재부팅 사이에 유효한 상태로 유지됩니다.캐시된 데이터를 위한 별도의 디렉터리가 존재하므로 시스템 관리자는 /var의 다른 디렉터리와 다른 디스크 및 백업 정책을 설정할 수 있습니다.

마지막 문장이 정당성을 제공할 수 있다고 생각합니다. 하지만 이 경우에는 "이러한 데이터는 시간이 많이 걸리는 I/O 또는 계산의 결과로 로컬에서 생성됩니다."라는 기본 설명과 반대되는 것처럼 들립니다.

이는 개인의 기이하거나 무지한 선택일 수도 있습니다. 애플리케이션별 디렉토리를 생성하는 것은 드문 일이 아니며 /var/cache영구적이지만 소스나 구성 파일을 거기에 배치하는 것은 약간 이상하다고 생각합니다. 애플리케이션 코드에 대해 경로 외부 디렉터리 트리를 원하는 경우 보다 규범적인 위치는 입니다 /opt.

그러나 Apache와 같은 웹 서버에서는 일부 모듈식 애플리케이션 코드를 의 사용자 정의 하위 디렉터리에 보관하는 것이 일반적 /var이므로 이는 선례입니다.

관련 정보