Insbesondere möchte ich meine grub.conf
( /boot/grub/grub.conf
) und einige Oracle-Dateien (dh /db/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
) verfolgen .
Ich habe versucht, Links zu verwenden. etckeeper / git verfolgt jedoch nur, wo der Link verweist, nicht den tatsächlichen Inhalt. Und ich kann keine festen Links erstellen, da sich die Dateien auf einem anderen Volume befinden.
Ich weiß, dass ich ein anderes GIT-Repository einrichten könnte, aber ich hätte lieber alles in etckeeper.
Aktualisieren
Basierend auf der Antwort von nealmcb habe ich das folgende Skript entwickelt:
#!/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"
Um einen Pfad hinzuzufügen oder zu entfernen, fügen Sie einfach den mirror_dir
Anruf unten hinzu oder entfernen ihn .
Antworten:
Ich habe das obige Skript so bearbeitet, dass es auch einfache Dateien enthält.
Vielleicht sollte jemand eine Möglichkeit hinzufügen, dies außerhalb eines Skripts (in der Etckeeper-Konfiguration?) zu konfigurieren und dies als Patch an Joey Hess zu senden.
quelle
Mit etckeeper können Sie es in andere Systeme integrieren.
Ich wollte auch Änderungen verfolgen, die durch update-grub in / boot vorgenommen wurden, also habe ich den folgenden Code eingegeben
/etc/etckeeper/commit.d/20mirror-outside-files
Auf diese Weise wird etckeeper jedes Mal, wenn es aus anderen Gründen aufgerufen wird (wenn ich Software installiere, manchmal nachts usw.), Revisionen in der neuesten Grub-Konfiguration abrufen und verfolgen.
Ich habe die Konvention erfunden, um dieses Zeug unter / etc / Mirror / path-to-external-file abzulegen , z. B.
/etc/Mirror/boot/grub/grub.cfg
aber wenn jemand einen Präzedenzfall für eine andere solche Konvention hat, würde ich gerne davon hören.Aktualisieren:
Beachten Sie, dass etckeeper dies aus irgendeinem Grund nicht ausführt, wenn Sie apt-get entfernen oder bereinigen, z. B. um einen alten Kernel zu löschen. Seltsam .... Aber Sie können
sudo etckeeper commit
in diesem Fall manuell oder nach einem Handbuch ausführenupdate-grub
.quelle
etckeeper hat jetzt die
-d
Option anzugeben, in welchem Verzeichnis es betrieben werden muss.Während Hooks zum Auslösen von etckeeper im Allgemeinen das Konstrukt as
etckeeper pre-install
, ... verwenden, müssen Sieetckeeper pre-install -d /boot/grub
stattdessen Hooks hinzufügen, die verwendet werden. Dadurch wird eine Dateiduplizierung in Ihrem Ansatz vermieden.Beachten Sie, dass diese Option Ihnen hilft, den Überblick darüber zu behalten, was passiert , wenn Sie davon ausgehen, dass systemd-Ziel-, Dienst-, ... -Dateien Konfigurationsdateien sind (ich tue - schließlich unterscheiden sich Dateien unter
/lib/systemd
nicht so stark von Dateien unter/etc/init.d
) .-d
/lib/systemd
quelle
Aus der Zusammenfassung:
etckeeper init -d /directory
Aber Vorsicht! Wenn Sie
-d path
es das nächste Mal ausführen oder nächste Woche, wenn Sie es vergessen , wird möglicherweise ein neues eigenständiges lokales Repo mit dem Standardspeicherort in erstellt/etc
.Daher würde ich empfehlen, dieses wichtige Detail in die Konfiguration in etckeeper.conf zu übernehmen. Ein schnelles ,,
grep /etc \``which etckeeper\``
enthüllt:ETCKEEPER_DIR=/etc
und verwenden Sie diese Variable einfach in der etckeeper.conf.Aus dem Wunsch heraus, andere Dinge zu "behalten", einschließlich Dateiattributen,
etckeeper init -d /
hat es für mich funktioniert, aber später das Detail zu vergessen, ist ärgerlich. Speichern Sie dieses Detail am besten. Außerdem wirduninit
das VCS nicht rückgängig gemacht, sondern nur das gesamte lokale Repo gelöscht.quelle
Ich glaube nicht, dass etckeeper dies tun wird, aber es gibt einige Lösungen:
Umkehren der Links: Setzen Sie im Dateisystem einen Link zu einer Datei in / etc /
Skript das Kopieren dieser Dateien in / etc (Backup) und aus / etc (Restore). Verwenden Sie diese Skripte dann regelmäßig oder in einem geeigneten Git-Hook.
quelle
grub.conf
, da Sie sonst nicht booten können.