Secara khusus saya ingin melacak grub.conf
( /boot/grub/grub.conf
) dan beberapa file oracle saya (yaitu /db/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
).
Saya mencoba menggunakan tautan; namun etckeeper / git hanya melacak di mana tautan menunjuk, bukan konten yang sebenarnya. Dan saya tidak dapat membuat tautan keras karena file-file tersebut ada di volume lain.
Saya tahu saya bisa mengatur repositori GIT lain tapi saya lebih suka memiliki semuanya di dalam etckeeper.
Memperbarui
Berdasarkan jawaban nealmcb saya datang dengan skrip berikut:
#!/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"
Untuk menambah atau menghapus jalur, Anda cukup menambah atau menghapus mirror_dir
panggilan di bagian bawah.
Jawaban:
Saya mengedit skrip di atas untuk juga menyertakan file biasa.
mungkin seseorang harus menambahkan kemungkinan untuk mengkonfigurasi ini di luar skrip (dalam konfigurasi etckeeper?) dan mengirim ini sebagai patch untuk bergabung dengan Hess?
sumber
dllkeeper memungkinkan Anda untuk mengintegrasikannya dengan sistem lain.
Saya juga ingin melacak perubahan yang dibuat oleh pembaruan-grub di / boot, jadi saya memasukkan kode di bawah ini
/etc/etckeeper/commit.d/20mirror-outside-files
Dengan cara ini, kapan saja, dan lain-lain penjaga dipanggil untuk alasan lain (ketika saya menginstal perangkat lunak, kadang-kadang setiap malam, dll), itu akan mengambil dan melacak revisi dalam konfigurasi grub terbaru.
Saya menemukan konvensi untuk meletakkan barang-barang ini di bawah / etc / Mirror / path-to-outside-file , misalnya
/etc/Mirror/boot/grub/grub.cfg
tetapi jika ada yang memiliki preseden untuk konvensi lain seperti itu, saya ingin mendengarnya.Memperbarui:
Perhatikan bahwa karena alasan tertentu penjaga kebun tidak menjalankan ini ketika Anda melakukan apt-get remove atau purge, misalnya untuk menghapus kernel lama. Aneh .... Tapi Anda bisa menjalankannya
sudo etckeeper commit
secara manual dalam kasus itu, atau setelah manualupdate-grub
.sumber
dllkeeper sekarang memiliki
-d
opsi untuk menunjukkan direktori mana yang harus dioperasikan.Sementara kait untuk memicu dllkeeper umumnya menggunakan konstruk sebagai
etckeeper pre-install
, ..., Anda harus menambahkan kait yang digunakanetckeeper pre-install -d /boot/grub
sebagai gantinya. Ini akan menghindari duplikasi file dalam pendekatan Anda.Perhatikan bahwa jika Anda menganggap bahwa target systemd, layanan, ..., file adalah file konfigurasi (saya lakukan - setelah semua, file di bawah
/lib/systemd
tidak jauh berbeda dari file di bawah/etc/init.d
) maka-d
opsi ini akan membantu Anda untuk melacak apa yang terjadi di/lib/systemd
.sumber
Dari sinopsis:
etckeeper init -d /directory
Tapi waspadalah! lain kali Anda menjalankannya, atau minggu depan, jika Anda lupa
-d path
, itu akan dapat membuat repo lokal mandiri baru dengan lokasi default di/etc
.Jadi saya sarankan melakukan detail penting ini untuk itu config, di etckeeper.conf. Cepat,,
grep /etc \``which etckeeper\``
mengungkapkanETCKEEPER_DIR=/etc
:, dan gunakan saja variabel ini di etckeeper.conf.Dari keinginan untuk "menyimpan" hal-hal lain, atribut file termasuk,
etckeeper init -d /
bekerja untuk saya, tetapi kemudian melupakan detailnya mengganggu. Jadi sebaiknya simpan detail ini. Juga,uninit
tidak membatalkan menggunakan VCS, itu hanya menghapus seluruh repo lokal.sumber
Saya tidak berpikir penjaga etc akan melakukan ini, tetapi ada beberapa solusi:
membalikkan tautan: letakkan tautan di sistem file ke file di / etc /
skrip penyalinan file-file itu ke / etc (backup) dan out of / etc (restore). Kemudian gunakan skrip-skrip tersebut secara berkala atau dalam git hook yang sesuai.
sumber
grub.conf
atau Anda tidak akan bisa boot.