Plus précisément, je voudrais suivre mes grub.conf
( /boot/grub/grub.conf
) et certains fichiers Oracle (ie /db/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
).
J'ai essayé d'utiliser des liens; cependant, etckeeper / git ne suit que là où le lien pointe, pas le contenu réel. Et je ne peux pas créer de liens durs car les fichiers sont sur un autre volume.
Je sais que je pourrais configurer un autre référentiel GIT mais je préfère tout avoir dans etckeeper.
Mise à jour
Sur la base de la réponse de nealmcb, j'ai trouvé le script suivant:
#!/bin/sh
set -e
# Based on nealmcb's idea/script from http://serverfault.com/questions/211425/
# If you want other configuration data or files on the system also
# opportunistically tracked via etckeeper, use this script to copy them in.
# If there is a hook of some sort available related to the files
# you're mirroring, you can call etckeeper directly and track them
# proactively, rather than just opportunistically here.
MIRROR_ROOT=/etc/etckeeper.mirror.d
echo "etckeeper: mirroring outside files to $MIRROR_ROOT/:"
mirror_dir() {
LOCAL_PATH=$1
echo " $LOCAL_PATH"
mkdir -p $MIRROR_ROOT/$LOCAL_PATH
rsync -a $LOCAL_PATH/ $MIRROR_ROOT/$LOCAL_PATH
}
mirror_dir "/boot/grub"
mirror_dir "/root"
Pour ajouter ou supprimer un chemin, il vous suffit d'ajouter ou de supprimer l' mirror_dir
appel en bas.
Réponses:
J'ai édité le script ci-dessus pour inclure également des fichiers simples.
peut-être que quelqu'un devrait ajouter une possibilité de configurer cela en dehors d'un script (dans la configuration etckeeper?) et l'envoyer comme patch à joey hess?
la source
etckeeper vous permet de l'intégrer à d'autres systèmes.
Je voulais également suivre les modifications apportées par update-grub dans / boot, j'ai donc mis le code ci-dessous dans
/etc/etckeeper/commit.d/20mirror-outside-files
De cette façon, à chaque fois que etckeeper est appelé pour d'autres raisons (lorsque j'installe un logiciel, parfois tous les soirs, etc.), il saisira et suivra les révisions dans la dernière configuration de grub.
J'ai inventé la convention pour mettre ce truc sous / etc / Mirror / path-to-outside-file , par exemple,
/etc/Mirror/boot/grub/grub.cfg
mais si quelqu'un a un précédent pour une autre de ces conventions, j'aimerais en entendre parler.Mise à jour:
Notez que pour une raison quelconque, etckeeper ne l'exécute pas lorsque vous effectuez une suppression ou une purge apt-get, par exemple pour supprimer un ancien noyau. Odd .... Mais vous pouvez exécuter
sudo etckeeper commit
manuellement dans ce cas, ou après un manuelupdate-grub
.la source
etckeeper a maintenant une
-d
option pour indiquer sur quel répertoire il doit fonctionner.Alors que les hooks pour déclencher etckeeper utilisent généralement la construction as
etckeeper pre-install
, ..., vous devrez ajouter des hooks qui utilisent à laetckeeper pre-install -d /boot/grub
place. Cela évitera la duplication de fichiers dans votre approche.Notez que si vous considérez que les fichiers systemd target, service, ..., sont des fichiers de configuration (je le fais - après tout, les fichiers sous
/lib/systemd
ne sont pas si différents des fichiers sous/etc/init.d
) alors cette-d
option vous aidera à garder une trace de ce qui se passe dans/lib/systemd
.la source
Du synopsis:
etckeeper init -d /directory
Mais méfiez-vous! la prochaine fois que vous l'exécuterez, ou la semaine prochaine, si vous oubliez
-d path
, cela pourrait créer un nouveau référentiel local autonome avec l'emplacement par défaut dans/etc
.Je recommande donc de valider ce détail important dans sa configuration, dans etckeeper.conf. Un rapide
grep /etc \``which etckeeper\``
, révèle:ETCKEEPER_DIR=/etc
et donc il suffit d' utiliser cette variable dans etckeeper.conf.Du désir de "garder" d'autres choses, les attributs de fichier inclus, ont
etckeeper init -d /
fonctionné pour moi, mais oublier plus tard le détail est ennuyeux. Il vaut donc mieux enregistrer ce détail. En outre,uninit
n'annule pas l'utilisation du VCS, il supprime simplement le référentiel local entier.la source
Je ne pense pas que etckeeper fera cela, mais il y a quelques solutions:
inverser les liens: mettre un lien sur le système de fichiers vers un fichier dans / etc /
script la copie de ces fichiers dans / etc (sauvegarde) et hors de / etc (restauration). Utilisez ensuite ces scripts périodiquement ou dans un crochet git approprié.
la source
grub.conf
sinon vous ne pourrez pas démarrer.