Git
可以使用 etckeeper 來跟踪 /etc 之外的配置文件嗎?
具體來說,我想跟踪我的
grub.conf
(/boot/grub/grub.conf
) 和一些 oracle 文件 (ie/db/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
)。我嘗試使用連結;但是 etckeeper/git 只跟踪連結指向的位置,而不是實際內容。而且我無法創建硬連結,因為文件在另一個卷上。
我知道我可以設置另一個 GIT 儲存庫,但我寧願將它全部放在 etckeeper 中。
更新
根據 nealmcb 的回答,我想出了以下腳本:
#!/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"
要添加或刪除路徑,您只需
mirror_dir
在底部添加或刪除呼叫。
我編輯了上面的腳本以包含純文件。
也許有人應該添加一個在腳本之外配置它的可能性(在 etckeeper 配置中?)並將其作為更新檔發送給 joey hess?
#!/bin/sh set -e # Based on nealmcb's + ErebusBat's 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 --del $LOCAL_PATH/ $MIRROR_ROOT/$LOCAL_PATH } mirror_file() { LOCAL_PATH=$1 DIRPATH=`dirname $LOCAL_PATH | head -n 1` echo " $LOCAL_PATH" mkdir -p $MIRROR_ROOT/$DIRPATH rsync -a --del $LOCAL_PATH $MIRROR_ROOT/$DIRPATH } mirror_file "/var/srv/foo_bar/blog/config.py" mirror_file "/var/srv/foo_bar_another_host/trac/conf/trac.ini" mirror_file "/tmp/wildcards/*.jpg"