Папка версий Linux с символическими ссылками и их содержимым - PullRequest
0 голосов
/ 19 сентября 2019

Мой вариант использования - контроль версий приложений на сервере, потому что иногда мне нужно откатить предыдущую версию перед обновлением или перед изменениями конфигурации.

Это мой список содержимого:

dasper@debian:/usr/share/otrs$
drwxr-xr-x   6 root root   4096 Sep 18 16:56 .
drwxr-xr-x 109 root root   4096 Sep 18 13:13 ..
lrwxrwxrwx   1 root root     21 May  9 11:06 ARCHIVE -> /var/lib/otrs/ARCHIVE
drwxr-xr-x   4 root root   4096 Sep 11 15:53 bin
-rwx------   1 root root 212450 Sep 18 16:06 .etckeeper
-rw-r--r--   1 root root   1125 Jan 11  2019 .fetchmailrc.dist
drwx------   8 root root   4096 Sep 18 16:06 .git
-rw-r--r--   1 root root    932 Sep 18 15:40 .gitignore
drwxr-xr-x   9 root root   4096 Sep 11 15:53 Kernel
-rw-r--r--   1 root root    104 Jan 12  2019 RELEASE
drwxr-xr-x   7 root root   4096 Sep 11 15:53 scripts
-rw-r--r--   1 root root      0 Sep 18 15:36 testfile.txt
lrwxrwxrwx   1 root root     13 May  9 11:06 var -> /var/lib/otrs

Я пытался etckeeper для автоматической фиксации после того, как менеджер пакетов внесет некоторые изменения, но git по умолчанию создаст только пустую папку var/ и ARCHIVE/.

Я пробовал подмодули, но потом я не знаю об изменениях в папках символических ссылок (git add .), и содержимое подмодулей не может привести к папке символических ссылок.

Моя самая большая проблема заключается в том, какхранить эти папки в git и как клонировать / оформить заказ в той же структуре.

1 Ответ

0 голосов
/ 26 сентября 2019

Решение было простым и чистым, я надеюсь:)

apt-get install etckeeper

Создать каталог для хранилища.Он монтируется на другой диск

mkdir /BACKUP
cd /BACKUP

Инициализируйте git repo и установите для рабочего дерева root /.Теперь я могу отслеживать изменения всей системы, не только / etc

git init 
git config --path core.worktree /

Мой .gitignore внутри / BACKUP:

# Ignore everything ~ whitelist
*

# But descend into directories
!*/

# Add /usr/share/otrs/ - main directory
!/usr/share/otrs/**

# Add /var/lib/otrs - symlink # Add /usr/share/otrs/var -> /var/lib/otrs 
!/var/lib/otrs/**

...

# Add myself
!/.gitignore

# Add etckeeper staff
!/etc/.etckeeper/**

Добавить новую строку в конце /etc/etckeeper/etckeeper.conf с путем крепозиторий:

ETCKEEPER_DIR=/BACKUP

В конце удалите неиспользованное репо, инициализированное etckeeper после установки:

cd /etc
rm -rf .git
rm .gitignore

Теперь вы можете сделать первый начальный коммит: etckeeper commit

...