Menjaga file konfigurasi disinkronkan di beberapa PC

15

Saya memiliki beberapa mesin linux yang berbeda dan banyak file konfigurasi (dan folder) pada masing-masing.

Sebagai contoh:

~/.ssh/config
~/.config/openbox/rc.xml
~/.config/openbox/autostart.sh
~/.scripts/ ( folder )
~/.bashrc
...etc

Apakah ada metode yang sederhana dan elegan untuk menjaga file-file ini disinkronkan antara mesin saya (tidak ada akses internet) ?

Selain itu, beberapa file akan memerlukan proses sinkronisasi lebih lanjut, karena mereka harus sedikit berbeda ... misalnya:

Keyboard desktop saya memiliki berbagai tombol cepat, di mana laptop saya hampir tidak ada. Saya gunakan XF86Mailuntuk membuka thunderbird di desktop saya, tetapi Meta+ Mdi laptop saya.

My Home Desktop dan Work Desktop keduanya lebih berorientasi "beberapa pengguna", di mana Laptop saya hanya untuk saya. Jadi di laptop saya, saya cenderung menyimpan file 'rc.xml' untuk openbox di /etc/xdg/openbox/rc.xmltetapi pada desktop di~/.config/openbox/rc.xml

Stefan
sumber

Jawaban:

10

Simpan file di bawah kontrol versi. Ini memiliki banyak manfaat, termasuk memfasilitasi menjaga file disinkronkan (komit di satu mesin, memperbarui yang lain) dan menjaga riwayat perubahan (sehingga Anda dapat dengan mudah mengetahui apa yang merusak program yang bekerja bulan lalu).

Saya menggunakan CVS dan menyinkronkan repositori dengan Unison atau sneakernet, tapi itu karena saya sudah melakukan ini sejak dulu sebelum kontrol versi didistribusikan yang tersedia secara luas. Siapa pun yang memulai sekarang harus menggunakan alat kontrol versi terdistribusi yang tepat , seperti pasar, darcs, git, lincah, ...

Mengelola file yang perlu berbeda antara mesin selalu sedikit merepotkan. Jika bahasa konfigurasi memungkinkan kondisional, gunakan kondisinya. Kalau tidak, jika ada mekanisme sertakan, gunakan untuk membagi file konfigurasi menjadi bagian yang bergantung pada mesin dan bagian yang dibagikan. Simpan semua bagian yang tergantung pada mesin dalam direktori terpisah (seperti ~/.local/NAME/) yang selalu dirujuk melalui tautan simbolik ( ~/.here-> local/NAMEpada setiap mesin). Saya memiliki beberapa file yang dihasilkan oleh skrip di bagian bersama dari parameter yang disimpan di bagian khusus mesin; ini menghalangi memodifikasi file-file ini secara tidak langsung melalui antarmuka konfigurasi GUI. Hindari mengonfigurasi berbagai hal /etc, lebih sulit untuk menyinkronkan antar mesin.

Gilles 'SO- berhenti menjadi jahat'
sumber
Saya menggunakan gituntuk tujuan ini. repo saya untuk ~/.etcsaya juga punya ~/.usrdan ~/.varsaya berharap direktori ini standar sehingga KDE akan berhenti membuang semua file tmp / var / config / etc di bawah .kde. sangat sulit untuk mengetahui di mana yang saya inginkan di direktori home saya.
xenoterracide
5

Saya setuju dengan jawaban kontrol versi , tetapi metode lain yang telah saya coba baru-baru ini adalah Dropbox . Ini pada dasarnya adalah sistem kontrol versi yang secara otomatis menyinkronkan antara semua mesin Anda, jadi jika Anda mengedit file di satu komputer Anda akan melihat perubahan yang tercermin pada komputer Anda yang lain dalam beberapa detik, tanpa perlu komit pada yang sebelumnya dan memperbarui pada terakhir.

Paket dasar gratis mereka adalah 2GB, jadi saya menggunakannya untuk membuat versi file konfigurasi dan log obrolan saya

Michael Mrozek
sumber
manfaat utama yang saya lihat di sini adalah lebih mudah untuk setup-up.
Ashesh Kumar Singh 2-15
3

Puppet dan Cfengine adalah dua alat yang baik untuk menyinkronkan file (dan banyak lagi ..)

rkthkr
sumber
Ada juga koki tetapi alat ini benar-benar untuk mengelola sejumlah besar mesin, mungkin berlebihan untuk 2 atau 3 sistem
xenoterracide
1

Hari ini, orang bisa mendapatkan yang terbaik dari respons pertama (dvcs) dan kedua (dropbox) dengan sparkleshare , yang memberikan pengalaman pengguna seperti dropbox dengan penyimpanan berbasis git di belakang layar.

emjayess
sumber