Di mana dalam sistem file saya harus menyimpan data bersama?

44

Di mana dalam sistem file unix adalah lokasi konvensional untuk menyimpan data spesifik non-pengguna, misalnya data yang dibagikan melalui nfs atau ftp, atau cadangan?

Saya jelas dapat membuat dan menggunakan folder sembarang (seperti / home / shared, / data atau / var / data), tetapi saya benar-benar bertanya-tanya apakah ada pedoman praktik "terbaik" atau "umum". The Filesystem Hierarchy Standard tidak menentukan lokasi untuk data bersama.

Untuk cadangan, saya cenderung menggunakan / var / cadangan, tetapi karena beberapa cronjobs menulis untuk itu haruskah itu benar-benar dibiarkan digunakan?

misterben
sumber

Jawaban:

29

Pertanyaan ini tampaknya memiliki jawaban yang jelas dalam Standar Hierarki Filesystem , yang menentukan /srvsebagai "berisi data spesifik situs yang dilayani oleh sistem ini" . (3.16.1)

Tujuan utama menentukan ini adalah agar pengguna dapat menemukan lokasi file data untuk layanan tertentu , dan agar layanan yang memerlukan satu pohon tunggal untuk data yang hanya dapat dibaca, data yang dapat ditulis, dan skrip

(penekanan saya)

Catatan: 'Dilayani oleh sistem' tidak selalu merujuk ke Internet. Bahkan tidak perlu berarti jaringan. Ini berlaku bahkan untuk sistem bersama. Selanjutnya, kata situs dan layanan harus dipahami dalam arti pra-internet mereka. Situs Anda dapat "departemen fisika" atau "kantor keuangan".

Selanjutnya dikatakan:

Pada sistem besar, berguna untuk membuat struktur / srv berdasarkan konteks administratif, seperti / srv / physics / www, / srv / compsci / cvs, dll. Pengaturan ini akan berbeda dari host ke host. Oleh karena itu, tidak ada program yang harus bergantung pada struktur subdirektori spesifik dari / srv yang ada atau data yang harus disimpan di / srv. Namun / srv harus selalu ada pada sistem yang memenuhi FHS dan harus digunakan sebagai lokasi default untuk data tersebut.

Karena itu Anda harus menyusun lebih lanjut data Anda di direktori seperti /srv/nfs, /srv/backupdan sebagainya.

Saya juga harus menyebutkan bahwa beberapa orang melakukan ini lagi. Tetapi tidak ada alasan bagus mengapa mereka tidak melakukannya. Standar ini sama sekali tidak ketinggalan zaman.

/varsecara tradisional digunakan untuk hal-hal seperti gulungan file dan file log, tetapi juga digunakan oleh server web Apache (tetap pada sistem Debian - SUSE use / srv); Tampaknya tidak ada konsensus tentang apakah /vardirektori yang tepat untuk data bersama. Tetapi jika Anda memutuskan untuk menggunakannya, Anda tidak akan menyesal.

Perhatikan juga: Jawaban Karthick sama sekali tidak salah. FHS mengatakan / srv "harus digunakan sebagai lokasi default untuk data tersebut", tetapi standar menyisakan ruang untuk preferensi Anda sendiri, tergantung pada bagaimana Anda mengartikan istilah tersebut.

Stefano Palazzo
sumber
4
Perhatikan bahwa Debian (dan Red Hat) mulai memasukkan file Apache /var/www, sebelum /srv/menjadi bagian dari FHS.
mattdm
Penjelasan yang bagus, terima kasih, meskipun sepertinya jawaban untuk pertanyaan itu adalah "sebenarnya tidak ada standar yang benar-benar diikuti". Mungkin seharusnya ada, mungkin itu benar-benar tidak masalah.
misterben
Nah, Anda harus selalu melanggar aturan ketika Anda punya alasan kuat untuk melakukannya. Tapi saya memperkirakan standar ini diikuti dengan cermat dalam banyak penyebaran skala besar.
Stefano Palazzo
Orang yang ingin pindah ke standar umum, harus menemukan jawaban ini benar berdasarkan FHS.
Jeremy
13
  • Data spesifik non-pengguna dapat disimpan di / usr / local / var sehingga tidak berakhir pada pembagian pekerjaan baru lagi.
  • Apa pun yang tidak di bawah ../local/ .. diizinkan berakhir di berbagi nfs, jadi jika Anda ingin mengunduh data dari berbagi nfs, dan pastikan mereka disimpan secara lokal di hard drive komputer.
  • Maka Anda harus memilih jalur dengan ... / lokal / .. di dalamnya .... sisanya tergantung pada sifat data, pada jenisnya. Ini bisa menjadi / lokal / var atau / lokal / tmp dll .

Hirarki sistem file:
teks alternatif

Lihat juga ini

karthick87
sumber
1
Meskipun ini adalah representasi FHS yang bermanfaat, masih tidak menyarankan lokasi standar untuk penyimpanan data bersama.
misterben
FSH menyatakan, bahwa: / usr adalah data yang dapat dibagikan dan hanya-baca. Itu berarti bahwa / usr harus dapat dibagikan antara berbagai host yang sesuai dengan FHS dan tidak boleh ditulisi . Hmmm, jadi sepertinya tergantung apa tujuan dari share Anda.
htorque
@Htorque Saya condong ke arah berpikir di suatu tempat di bawah / var yang paling tepat untuk berbagi file, seperti yang Anda sarankan dalam jawaban Anda (sekarang dihapus).
misterben
1
Saya menghapus jawaban saya, karena FHS juga menyatakan, bahwa: Aplikasi umumnya tidak boleh menambahkan direktori ke tingkat atas / var. Direktori semacam itu hanya boleh ditambahkan jika memiliki implikasi seluruh sistem, dan dalam konsultasi dengan milis FHS. - FHS tidak ingin Anda berbagi data (dapat ditulis)! : P
htorque
Terima kasih, ikhtisar yang bermanfaat, dan seperti jawaban lainnya, ia berfungsi untuk mendokumentasikan bahwa tidak ada jawaban pasti, yang sangat membantu.
misterben
5

Saya tidak berpikir FHS menentukan tempat untuk data pengguna bersama. Terserah pengguna tempat mereka ingin menyimpan data yang dibagikan di sana. Saya biasanya menggunakan /usr/local/sharedatau /home/shared.

binW
sumber
1

Saya telah melihat /exportdigunakan untuk melayani dengan nfs, dan /mntdigunakan untuk me-mount berbagi nfs secara lokal, dalam lingkungan perusahaan, seperti yang disarankan dalam dokumentasi NFS, sebuah standar yang saya duga awalnya berasal dari Sun OS, yang kemudian dinamai Solaris.

The /etc/exportsnama file yang diekspor volume dan /exportsdirektori melayani mereka untuk pengguna remote, yang me-mount mereka di /mnt. Host server juga dapat me-mount share yang sama ini /mntmenggunakan daemon nfs yang sama untuk penggunaan klien atau proses yang berjalan secara lokal di server, untuk mempertahankan kompatibilitas dengan host jarak jauh dan mungkin mempertahankan fungsi leveling beban, kuota, dll.

Itu sedekat dengan 'standar' yang didapatnya. Catatan yang /exporttidak ada di FHS karena /exportitu ditambahkan secara independen, jadi mungkin tidak ada yang senang dengan itu /srv. Mungkin karena potensi kebingungan dengan 'layanan' berjalan sebagai daemon daripada volume 'dilayani'. /exportdinamai dengan sedikit peluang kebingungan. Saya tidak pernah melihat apapun /srv.

cheryljosie
sumber