파일 시스템에서 공유 데이터를 어디에 저장해야합니까?


44

유닉스 파일 시스템에서 사용자가 아닌 특정 데이터, 예를 들어 nfs 또는 ftp를 통해 공유되는 데이터 또는 백업을 저장하는 일반적인 위치는 어디입니까?

분명히 임의의 폴더 (예 : / home / shared, / data 또는 / var / data)를 만들어 사용할 수 있지만 "최고"또는 "공통"연습 지침이 있는지 궁금합니다. 파일 시스템 계층 표준은 공유 데이터의 위치를 지정하지 않습니다.

백업의 경우 / var / backups를 사용하는 경향이 있지만 여러 cronjob이 쓸 때 실제로 사용하도록 남겨 두어야합니까?

답변:


29

이 질문은 않습니다 에 명확한 답변을 갖고있는 것 같다 파일 시스템 계층 구조 표준을 ,하는 지정 /srv"이 시스템에 의해 제공됩니다 [보내고] 사이트 별 데이터를 포함하는" . (3.16.1)

이를 지정하는 주된 목적은 사용자특정 서비스 에 대한 데이터 파일 의 위치를 ​​찾을 수 있도록하고 읽기 전용 데이터, 쓰기 가능한 데이터 및 스크립트에 대해 단일 트리가 필요한 서비스

(내 강조)

참고 : '시스템에서 제공'은 반드시 인터넷을 의미하지는 않습니다. 네트워크를 의미 할 필요도 없습니다. 공유 시스템에도 적용 할 수 있습니다. 또한 사이트서비스 라는 단어 는 인터넷 사전 의미로 이해해야합니다. 귀하의 사이트는 "물리 부서"또는 "재무 부서"일 수 있습니다.

계속해서 말합니다.

대규모 시스템에서는 / srv / physics / www, / srv / compsci / cvs 등과 같은 관리 컨텍스트에 따라 / srv를 구성하는 것이 유용 할 수 있습니다.이 설정은 호스트마다 다릅니다. 따라서 어떤 프로그램도 / srv 기존의 특정 하위 디렉토리 구조 또는 / srv에 반드시 저장되는 데이터를 사용해서는 안됩니다. 그러나 / srv는 항상 FHS 호환 시스템에 존재해야하며 이러한 데이터의 기본 위치로 사용해야합니다.

그러므로 당신은 더 같은 디렉토리에 데이터를 구조화한다 /srv/nfs, /srv/backup등등.

나는 더 이상이 일을하는 사람이 거의 없다고 언급해야한다. 그러나 그렇지 않은 이유는 없습니다. 표준은 결코 구식이 아닙니다.

/var전통적으로 인쇄 스풀 및 로그 파일과 같은 용도로 사용되지만 Apache 웹 서버에서도 사용됩니다 (어쨌든 데비안 시스템-SUSE / srv 사용). /var공유 데이터에 적합한 디렉토리 인지에 대해서는 합의가없는 것 같습니다 . 그러나 대신 사용하기로 결정하면 후회하지 않을 것입니다.

참고 : Karthick의 대답은 결코 잘못된 것이 아닙니다. FHS는 / srv "를 이러한 데이터의 기본 위치로 사용해야합니다"라고 말하지만 표준은 용어를 해석하는 방법에 따라 원하는대로 사용할 수있는 여지를 남겨 둡니다.


4
데비안 (및 Red Hat) 은 FHS의 일부가 /var/www되기 전에 Apache 파일을에 넣기 시작했습니다 /srv/.
mattdm

이 질문에 대한 해답은 "실제로 따르는 표준이 없다"고 생각하지만 좋은 설명은 감사합니다. 어쩌면 그것은 중요하지 않을 수도 있습니다.
misterben

글쎄, 당신은 항상 합당한 이유가있을 때 규칙을 어겨 야합니다. 그러나이 표준은 많은 대규모 배포에서 세 심하게 준수됩니다.
Stefano Palazzo

공통 표준으로 이동하고자하는 사람들은이 답변이 FHS에 따라 명확하게 맞아야합니다.
제레미

13
  • 사용자가 아닌 특정 데이터는 / usr / local / var 에 저장하여 newtwork 공유에 다시 들어 가지 않도록 할 수 있습니다.
  • ../local/ .. 아래에없는 것은 nfs 공유에서 종료 될 수 있으므로 nfs 공유에서 데이터를 다운로드하고 시스템 하드 드라이브에 로컬로 저장되어 있는지 확인하십시오.
  • 그런 다음 ... / local / ..이 포함 된 경로를 선택해야합니다. 나머지는 데이터의 유형에 따라 데이터 유형에 따라 다릅니다. / local / var 또는 / local / tmp 등이 될 수 있습니다. .

파일 시스템 계층 :
대체 텍스트

이것 좀 봐


1
이것은 FHS의 유용한 표현이지만 여전히 공유 데이터 저장소의 표준 위치를 제안하지는 않습니다.
misterben

FSH는 다음과 같이 말합니다. / usr은 공유 가능한 읽기 전용 데이터입니다. 즉, / usr은 다양한 FHS 호환 호스트간에 공유 가능 해야하며에 쓰면 안됩니다 . 흠, 그것은 당신의 공유의 목적이 무엇인지에 달려있는 것 같습니다.
htorque

@ htorque / var 아래 어딘가가 파일 공유에 가장 적합하다고 생각하고 있습니다. 현재 삭제 된 답변에서 제안한 것처럼.
misterben

1
FHS에서도 다음과 같이 진술하기 때문에 대답을 삭제했습니다. 응용 프로그램은 일반적으로 디렉토리를 최상위 수준 / var에 추가해서는 안됩니다. 이러한 디렉토리는 시스템 전체에 영향을 미치고 FHS 메일 링리스트와상의하여 추가해야합니다. -FHS는 단순히 (쓰기 가능) 데이터를 공유하기를 원하지 않습니다! : P
htorque

감사합니다. 유용한 개요이며 다른 답변과 마찬가지로 결정적인 답변이 없다는 사실을 문서화하는 데 도움이되며 그 자체로 도움이됩니다.
misterben

5

FHS가 공유 사용자 데이터의 장소를 정의한다고 생각하지 않습니다. 공유 데이터를 저장하려는 사용자는 사용자에게 달려 있습니다. 나는 보통 /usr/local/shared또는을 사용 /home/shared합니다.


1

NFS 문서에서 제안한대로 NFS 환경에서 nfs /export와 함께 /mnt사용하고 로컬에서 nfs 공유를 로컬로 마운트하는 데 사용되는 것을 보았습니다 .

/etc/exports파일 이름은 볼륨을 수출하고 /exports디렉토리에 그들을 마운트 원격 사용자에게 제공합니다 /mnt. 서버 호스트는 /mnt원격 호스트와의 호환성을 유지하고로드 레벨링, 할당량 등의 기능을 유지하기 위해 서버에서 로컬로 실행되는 클라이언트 또는 프로세스를 사용하기 위해 동일한 nfs 데몬을 사용하여 동일한 공유를 마운트 할 수도 있습니다.

그것은 '표준'에 가깝습니다. 참고 /export히트 싱크에없는 그러므로 /export그래서 아마 아무도 행복하지 독립적으로 추가되었습니다 /srv. 아마도 '서비스 된'볼륨이 아닌 데몬으로 실행되는 '서비스'와 혼동 될 수 있습니다. /export혼동의 가능성이 거의없이 분명하게 지명되었습니다. 에 아무것도 표시되지 않습니다 /srv.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.