Garder les fichiers de configuration synchronisés sur plusieurs PC

15

J'ai quelques machines Linux différentes et beaucoup de fichiers de configuration (et dossiers) sur chacun.

Par exemple:

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

Existe-t-il une méthode simple et élégante pour garder ces fichiers synchronisés entre mes machines (l'une n'a pas accès à Internet) ?

De plus, certains fichiers nécessiteront un processus de synchronisation plus avancé, car ils devront différer légèrement ... par exemple:

Mon clavier de bureau dispose d'une gamme de raccourcis clavier, où mon ordinateur portable n'en a presque pas. J'utilise XF86Mailpour ouvrir Thunderbird sur mon bureau, mais Meta+ Msur mon ordinateur portable.

My Home Desktop et Work Desktop sont tous deux davantage orientés "utilisateurs multiples", où mon ordinateur portable est fait pour moi. Donc, sur mon ordinateur portable, j'ai tendance à conserver le fichier «rc.xml» pour openbox /etc/xdg/openbox/rc.xmlmais sur les ordinateurs de bureau à~/.config/openbox/rc.xml

Stefan
la source

Réponses:

10

Gardez les fichiers sous contrôle de version. Cela présente de nombreux avantages, notamment la facilitation de la synchronisation des fichiers (validation sur une machine, mise à jour sur les autres) et la conservation d'un historique des modifications (afin que vous puissiez facilement découvrir ce qui a cassé un programme qui a fonctionné le mois dernier).

J'utilise CVS et synchronise les référentiels avec Unison ou sneakernet, mais c'est parce que je fais cela depuis un certain temps avant le contrôle de version distribué largement disponible. Quiconque commence maintenant doit utiliser un contrôle de version distribué approprié outil de , tel que bazaar, darcs, git, mercurial, ...

La gestion des fichiers qui doivent différer entre les machines est toujours un peu pénible. Si le langage de configuration autorise les conditions, utilisez-les. Sinon, s'il existe un mécanisme d'inclusion, utilisez-le pour diviser le fichier de configuration en une partie dépendante de la machine et une partie partagée. Conservez toutes les pièces dépendantes de la machine dans un répertoire séparé (quelque chose comme ~/.local/NAME/) qui est toujours référencé via un lien symbolique ( ~/.here-> local/NAMEsur chaque machine). J'ai quelques fichiers générés par un script dans la partie partagée à partir de paramètres conservés dans la partie spécifique à la machine; cela empêche de modifier ces fichiers indirectement via une interface de configuration GUI. Évitez de configurer des choses dans /etc, il est plus difficile de synchroniser entre les machines.

Gilles 'SO- arrête d'être méchant'
la source
J'utilise gità cet effet. mon repo car ~/.etcj'ai aussi un ~/.usret un ~/.varJe souhaite que ces répertoires soient standard pour que KDE arrête de jeter tous les fichiers tmp / var / config / etc sous .kde. si difficile de savoir où ce que je veux est dans mon répertoire personnel.
xenoterracide
5

Je suis d'accord avec la réponse du contrôle de version , mais une autre méthode que j'ai expérimentée récemment est Dropbox . Il s'agit essentiellement d'un système de contrôle de version qui se synchronise automatiquement entre toutes vos machines, donc si vous modifiez un fichier sur un ordinateur, vous verrez les changements reflétés sur vos autres ordinateurs en quelques secondes, sans avoir besoin de valider le premier et de mettre à jour le dernier.

Leur plan de base gratuit est de 2 Go, donc je l'utilise pour versionner mes fichiers de configuration et mes journaux de chat

Michael Mrozek
la source
le principal avantage que je vois ici est qu'il est beaucoup plus facile à configurer.
Ashesh Kumar Singh
3

Puppet et Cfengine sont deux bons outils pour synchroniser des fichiers (et bien plus encore ..)

rkthkr
la source
Il y a aussi un chef mais ces outils sont vraiment pour gérer un grand nombre de machines, probablement trop pour 2 ou 3 systèmes
xenoterracide
1

Aujourd'hui, on pourrait tirer le meilleur parti des premières (dvcs) et secondes (dropbox) réponses avec sparkleshare , qui offre une expérience utilisateur de type dropbox avec un stockage basé sur git dans les coulisses.

emjayess
la source