Gdzie w systemie plików powinienem przechowywać współdzielone dane?


44

Gdzie w systemie plików unix znajduje się konwencjonalna lokalizacja do zapisywania danych innych niż dane użytkownika, na przykład danych udostępnianych przez nfs lub ftp, lub kopii zapasowych?

Mógłbym oczywiście utworzyć i użyć dowolnego dowolnego folderu (takiego jak / home / shared, / data lub / var / data), ale naprawdę zastanawiam się, czy istnieją jakieś wytyczne dotyczące „najlepszych” lub „wspólnych” praktyk. Filesystem Hierarchy Standard nie określa lokalizację dla współdzielonych danych.

W przypadku kopii zapasowych mam tendencję do używania / var / backups, ale skoro piszę do nich kilka cronjobs, czy naprawdę powinno być pozostawione do użytku?

Odpowiedzi:


29

To pytanie nie wydaje się mieć jasną odpowiedź w Filesystem Hierarchy Standard , która określa /srvjako „zawierać [em] Dane site-specific, które jest obsługiwane przez ten system” . (3.16.1)

Głównym celem określenia tego jest, aby użytkownicy mogli znaleźć lokalizację plików danych dla konkretnej usługi oraz aby usługi wymagające jednego drzewa dla danych tylko do odczytu, danych zapisywalnych i skryptów

(mój nacisk)

Uwaga: „Obsługiwane przez system” niekoniecznie odnosi się do Internetu. To nie musi nawet oznaczać sieci. Dotyczy to nawet wspólnego systemu. Ponadto, słowa „ witryna i usługa” należy rozumieć w ich znaczeniu sprzed internetu. Twoja strona może być „działem fizyki” lub „biurem finansów”.

Mówi dalej:

W dużych systemach przydatne może być ustrukturyzowanie / srv według kontekstu administracyjnego, takiego jak / srv / physics / www, / srv / compsci / cvs itp. Ta konfiguracja różni się w zależności od hosta. Dlatego żaden program nie powinien polegać na konkretnej strukturze podkatalogu istniejącej / srv lub danych koniecznie przechowywanych w / srv. Jednak / srv powinien zawsze istnieć w systemach zgodnych z FHS i powinien być używany jako domyślna lokalizacja takich danych.

Dlatego należy dodatkowo uporządkować swoje dane w katalogach, takich jak /srv/nfs, /srv/backupi tak dalej.

Powinienem również wspomnieć, że niewiele osób już to robi. Ale nie ma dobrego powodu, aby tego nie robić. Standard w żadnym wypadku nie jest przestarzały.

/varjest tradycyjnie używany do buforowania wydruku i plików dziennika, ale jest także używany przez serwer WWW Apache (w systemach Debian i tak - SUSE use / srv); Wydaje się, że nie ma zgody co do tego, czy /varjest to właściwy katalog dla współdzielonych danych. Ale jeśli zdecydujesz się go użyć, na pewno nie będziesz żałować.

Uwaga: odpowiedź Karthicka w żadnym wypadku nie jest błędna. FHS mówi, że / srv „powinno być używane jako domyślna lokalizacja dla takich danych”, ale standard pozostawia miejsce na własne preferencje, w zależności od sposobu interpretacji warunków.


4
Zauważ, że Debian (i Red Hat) zaczął umieszczać pliki Apache /var/www, zanim /srv/był częścią FHS.
mattdm,

Dobre wyjaśnienie, dzięki, chociaż wydaje się, że odpowiedź na pytanie brzmi: „tak naprawdę nie ma standardu, który byłby rzeczywiście przestrzegany”. Być może powinno być, może to naprawdę nie ma znaczenia.
misterben

Cóż, zawsze powinieneś łamać zasady, gdy masz ku temu dobry powód. Ale oceniam, że ten standard jest ściśle przestrzegany w wielu wdrożeniach na dużą skalę.
Stefano Palazzo

Ludzie, którzy chcieliby przejść do wspólnego standardu, powinni znaleźć tę odpowiedź jednoznacznie poprawną na podstawie FHS.
Jeremy

13
  • Dane niespecyficzne dla użytkownika mogą być przechowywane w / usr / local / var, aby nie znalazły się ponownie w udziale newtwork.
  • Wszystko, co nie jest pod ../local/ .., może skończyć się na udziale nfs, więc jeśli chcesz pobrać dane z udziału nfs i upewnij się, że są one przechowywane lokalnie na dysku twardym komputera.
  • Następnie powinieneś wybrać ścieżkę z ... / local / .. .... reszta zależy od charakteru danych, od rodzaju. Może to być / local / var lub / local / tmp itp. .

Hierarchia systemu plików:
alternatywny tekst

Zobacz także


1
Chociaż jest to przydatna reprezentacja FHS, nadal nie sugeruje standardowej lokalizacji dla wspólnego magazynu danych.
misterben,

FSH stwierdza, że: / usr można udostępniać, tylko do odczytu. Oznacza to, że / usr powinien być współużytkowany przez różne hosty zgodne z FHS i nie można do niego pisać . Hmmm, więc wydaje się, że zależy to od celu twojego udziału.
htorque

@htorque Skłaniam się ku myśleniu, że gdzieś pod / var najlepiej nadaje się do udostępniania plików, jak sugerowałeś w (teraz usuniętej) odpowiedzi.
misterben,

1
Usunąłem swoją odpowiedź, ponieważ FHS stwierdza również, że: Ogólnie aplikacje nie mogą dodawać katalogów do najwyższego poziomu / var. Takie katalogi należy dodawać tylko wtedy, gdy mają one wpływ na cały system i po konsultacji z listą dyskusyjną FHS. - FHS po prostu nie chce, abyś udostępniał (zapisywalne) dane! : P
htorque,

Dzięki, przydatny przegląd i podobnie jak inna odpowiedź naprawdę służy do udokumentowania, że ​​nie ma ostatecznej odpowiedzi, która sama w sobie jest pomocna.
misterben

5

Nie sądzę, że FHS definiuje jakiekolwiek miejsce dla udostępnionych danych użytkownika. To użytkownicy muszą przechowywać tam udostępnione dane. Zwykle używam /usr/local/sharedlub /home/shared.


1

Widziałem, /exportjak służyłem do obsługi NFS i /mntdo montowania udziału NFS lokalnie, w środowisku korporacyjnym, jak sugerowano w dokumentacji NFS, standard, który, jak podejrzewam, pierwotnie pochodził z Sun OS, później przemianowany na Solaris.

Te /etc/exportsnazwy plików eksportowane woluminów oraz /exportskatalog służy im do zdalnych użytkowników, którzy zamontować je na /mnt. Host serwera może również montować te same udziały przy /mntużyciu tego samego demona nfs na potrzeby dowolnych klientów lub procesów działających lokalnie na serwerze, aby zachować zgodność z dowolnymi zdalnymi hostami i być może zachować funkcjonalność wyrównywania obciążenia, przydziałów itp.

To jest tak blisko „standardu”, jak to tylko możliwe. Pamiętaj, że /exportnie ma go w FHS, dlatego /exportzostał dodany niezależnie, więc prawdopodobnie nikt nie jest zadowolony /srv. Prawdopodobnie z powodu potencjalnego pomylenia z „usługami” działającymi jako demony zamiast woluminów „obsługiwanych”. /exportjest jednoznacznie nazwany z małą szansą na zamieszanie. Nigdy niczego nie widzę /srv.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.