Tempat yang disukai untuk menyimpan file konfigurasi yang sering berubah

18

Saya memiliki sejumlah aplikasi di server Linux saya yang bergantung pada beberapa file konfigurasi. Aplikasi ini terkait tetapi terpisah. Untuk apa nilainya, saat ini setiap aplikasi memiliki direktori sendiri /opt. File konfigurasi dapat berubah sekitar sekali per minggu, tetapi tidak lebih dari itu. Saya berencana untuk menyiapkan pekerjaan cron untuk mengambil versi terbaru dari situs FTP setiap hari Minggu.

Saya tidak benar-benar mengerti persis di mana tempat terbaik untuk meletakkan file-file konfigurasi ini, belum. Berikut ini beberapa kemungkinan:

  • /etc/<appsuitename>/ Ini file konfigurasi, konfigurasi masuk /etc
  • /var/<appsuitename>/ File-file memang berubah cukup sering, tetapi tidak pernah secara langsung oleh administrator (saya), hanya oleh penyedia platform.
  • /opt/<appsuitename>/libatau /opt/<appsuitename>/commonIni lebih merupakan cara berpikir Windows, tetapi mungkin masuk akal dalam kasus ini
  • /usr/lib mungkin tidak, tetapi termasuk untuk kelengkapan.

Atau mungkin hal lain yang belum saya pikirkan?

Sunting: Menjawab pertanyaan @ MichaelKjörling:

  • Hanya ada 3 partisi, /home, /, dan /swap. /opttidak hanya dibaca.
  • Ya, orang lain harus menggunakan server ini jika saya tertabrak bus.
  • Aplikasi-aplikasi ini dikembangkan secara internal, jadi saya yang memutuskan kemana konfigurasi harus pergi. Jika bukan "meta-tag", saya mungkin telah memasang tag best-practices.
  • Pada akhirnya, apa pun yang saya putuskan benar-benar tidak masalah, saya tahu bahwa sistem organisasi lebih untuk administrator sistem daripada untuk pekerjaan internal OS, tetapi saya suka mengikuti konvensi standar karena ada karena suatu alasan.
durron597
sumber

Jawaban:

21

Standar Hierarki Filesystem mensyaratkan bahwa file konfigurasi untuk sesuatu yang diinstal di bawah /opt/xyzharus masuk /etc/opt/xyz, di mana xyzharus cocok. Yaitu, aplikasi yang diinstal di direktori di bawah / opt yang memerlukan file konfigurasi khusus-host harus memiliki direktori yang sesuai di / etc / opt ke mana file-file konfigurasi pergi.

Tujuan / etc (konfigurasi sistem khusus-host) secara sederhana dinyatakan sebagai:

The /etchirarki berisi file konfigurasi. "File konfigurasi" adalah file lokal yang digunakan untuk mengontrol operasi suatu program; itu harus statis dan tidak bisa menjadi biner yang dapat dieksekusi.

Tentu saja, tidak ada konfigurasi yang benar-benar statis, tetapi saya akan mengambil "statis" dalam konteks ini secara kasar berarti "tidak berubah tanpa campur tangan administrator".

/ etc / opt lebih spesifik, dan tujuannya dinyatakan sebagai:

File konfigurasi khusus host untuk paket perangkat lunak aplikasi tambahan harus diinstal di dalam direktori /etc/opt/<subdir>, di mana <subdir>nama subtree di /optmana data statis dari paket itu disimpan.

Karena Anda menginstal perangkat lunak di bawah / opt, maka file konfigurasi harus masuk ke subdirektori atau hierarki yang sesuai di bawah / etc / opt.

Tentu saja, tidak ada yang mengharuskan sistem Anda sesuai dengan FHS, tetapi itu akan membuatnya lebih mudah bagi orang lain untuk menemukan file apa pun yang mungkin mereka cari karena mereka akan tahu di mana mereka bisa berharap untuk menemukannya.

Karena ini adalah tentang perangkat lunak yang dikembangkan secara internal, saya juga akan sangat menyarankan agar Anda membuat lokasi dapat dikonfigurasi . Bahkan jika itu hanya dapat dikonfigurasi melalui deklarasi makro yang dilakukan di makefile dan dilakukan melalui pembangunan kembali yang lengkap dari sumber, itu masih jauh lebih baik daripada meng-hardcoding lokasi tertentu ke dalam kode sumber di mana pun Anda ingin membuka file konfigurasi.

sebuah CVn
sumber
Ini sebenarnya sudah dilakukan dalam .propertiesfile. Tetapi pada saat ini, setiap versi perangkat lunak memiliki salinannya sendiri dalam /optsubdirektori, yang jelas tidak ideal dan merupakan sesuatu yang ingin saya ubah. Pertanyaan ini adalah tentang "apa yang harus saya ubah menjadi". Terima kasih!
durron597