Específicamente me gustaría rastrear mi grub.conf
( /boot/grub/grub.conf
) y algunos archivos de Oracle (es decir /db/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
).
Intenté usar enlaces; sin embargo, etckeeper / git solo rastrea dónde apunta el enlace, no el contenido real. Y no puedo crear enlaces duros ya que los archivos están en otro volumen.
Sé que podría configurar otro repositorio GIT, pero preferiría tenerlo todo en etckeeper.
Actualizar
Basado en la respuesta de nealmcb se me ocurrió el siguiente script:
#!/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"
Para agregar o eliminar una ruta, simplemente agregue o elimine la mirror_dir
llamada en la parte inferior.
Respuestas:
Edité el script anterior para incluir también archivos sin formato.
tal vez alguien debería agregar la posibilidad de configurar esto fuera de un script (en la configuración de etckeeper) y enviarlo como un parche a joey hess?
fuente
etckeeper le permite integrarlo con otros sistemas.
También quería rastrear los cambios realizados por update-grub en / boot, así que puse el código a continuación en
/etc/etckeeper/commit.d/20mirror-outside-files
De esta forma, cada vez que se llama a etckeeper por otros motivos (cuando instalo software, a veces todas las noches, etc.), capturará y rastreará las revisiones en la última configuración de grub.
Inventé la convención para poner estas cosas en / etc / Mirror / path-to-outside-file , por ejemplo,
/etc/Mirror/boot/grub/grub.cfg
pero si alguien tiene un precedente para otra convención, me encantaría saberlo.Actualizar:
Tenga en cuenta que, por alguna razón, etckeeper no ejecuta esto cuando realiza una eliminación o purga de apt-get, por ejemplo, para eliminar un núcleo antiguo. Extraño ... Pero puede ejecutarlo
sudo etckeeper commit
manualmente en ese caso, o después de un manualupdate-grub
.fuente
etckeeper ahora tiene una
-d
opción para indicar en qué directorio debe operar.Si bien los ganchos para activar etckeeper generalmente usan construcción como
etckeeper pre-install
, ..., deberá agregar ganchos que usenetckeeper pre-install -d /boot/grub
en su lugar. Esto evitará la duplicación de archivos en su enfoque.Tenga en cuenta que si considera que systemd target, service, ..., los archivos son archivos de configuración (lo hago, después de todo, los archivos debajo
/lib/systemd
no son tan diferentes de los archivos debajo/etc/init.d
), entonces esta-d
opción lo ayudará a realizar un seguimiento de lo que sucede/lib/systemd
.fuente
De la sinopsis:
etckeeper init -d /directory
¡Pero cuidado! la próxima vez que lo ejecute, o la próxima semana, si lo olvida
-d path
, podría crear un nuevo repositorio local independiente con la ubicación predeterminada/etc
.Por lo tanto, recomendaría asignar este detalle importante a su configuración, en etckeeper.conf. Un rápido,
grep /etc \``which etckeeper\``
revela:,ETCKEEPER_DIR=/etc
y solo usa esta variable en etckeeper.conf.Por el deseo de "mantener" otras cosas, los atributos de archivo incluidos,
etckeeper init -d /
funcionaron para mí, pero luego olvidar los detalles es molesto. Así que mejor guardar este detalle. Además,uninit
no deshace el uso del VCS, solo elimina todo el repositorio local.fuente
No creo que etckeeper haga esto, pero hay un par de soluciones:
invierta los enlaces: coloque un enlace en el sistema de archivos a un archivo en / etc /
script la copia de esos archivos en / etc (copia de seguridad) y fuera de / etc (restaurar). Luego use esos scripts periódicamente o en un gancho git apropiado.
fuente
grub.conf
o de lo contrario no podrá arrancar.