Chciałbym śledzić zmiany w / etc /
Zasadniczo chciałbym wiedzieć, czy plik został zmieniony przez użytkownika yum update
lub przez użytkownika i wycofaj go, jeśli nie podoba mi się ta szansa. Myślałem o użyciu VCS takich jak migawki git, LVM lub btrfs lub program do tworzenia kopii zapasowych.
Co byś polecił?
Odpowiedzi:
Wygląda na to, że chcesz etckeepera od Joeya Hessa z Debiana, który zarządza plikami przy
/etc
użyciu kontroli wersji. Obsługuje git, mercurial, darcs i bazar.źródło
Nie mogę dać ci ostatecznej rekomendacji, ale mogę podzielić się kilkoma przemyśleniami na ten temat. Biorąc pod uwagę, że / etc jest zwykle dość mały, możesz po prostu wybrać proste skompresowane rozwiązanie tar-ball. Jeśli nie ma potrzeby przeglądania historii, może to być najłatwiejsze rozwiązanie.
Dla mnie żmudne byłoby zarządzanie woluminami logicznymi, aby śledzić / etc, a zwłaszcza, że nie sądzę, że migawki LVM zostały zaprojektowane do regularnego tworzenia jako środek do tworzenia kopii zapasowych stosunkowo niewielkiej ilości danych.
Wydaje mi się, że btrfs jest o wiele lepszym wyposażeniem, ale wciąż nie jest tak stabilny, jak na przykład ext {2,3,4}, a narzędzie fsck również nie zostało jeszcze wykonane. Ale ciągle się poprawia.
Ja osobiście używam git do śledzenia / etc, ale należy pamiętać, że git nie przechowuje metainformacji plików, takich jak własność lub pozwolenie! Sprawdź także, czy katalog .git ma odpowiednie uprawnienia. Istnieje jednak kilka narzędzi, które pomagają rozwiązać te problemy. Możesz rzucić okiem na etc-Keeper , który został opracowany właśnie do śledzenia / etc lub użyć przynajmniej czegoś takiego jak gitperms lub metastore do śledzenia metainformacji .
źródło
Aby śledzić „niechciane” zmiany, używamy HIDS - w naszym przypadku
samhain
innymi sątripwire
lubaide
. Wszystkie te systemy będą Cię ostrzegać, gdy wydarzy się coś niechcianego.A
yum update
nie powinien niczego zmieniać bez opuszczania .rpmnew lub .rpmold, jeśli plik konfiguracyjny jest oznaczony jako taki w odpowiednim rpm.Myselv Uważam, że dobrą praktyką jest wykonanie kopii bezpieczeństwa pliku, który zamierzam zmodyfikować z
cp -p origfile origfileYYYY-MM-DD
datą poprzedniego dnia.Jeśli wszystko inne zawiedzie - dzwonię do osób wykonujących kopie zapasowe i proszę o przywrócenie z ostatniej znanej „dobrej” kopii zapasowej.
źródło
Myślę, że możesz zrobić migawkę plików / katalogów w
/etc
.Najpierw utwórz listę plików / etc / katalogu:
A jeśli utworzysz plik w
/etc
a jeśli powtórzysz migawkę
/etc
tego, co zrobiliśmy wcześnieja następnie możesz porównać różnice między 2 plikami w następujący sposób:
źródło
Zawsze jest radmind . Możesz rzucić tę zmianę od razu, jeśli ci się nie podoba.
źródło
Szukasz zarządzania konfiguracją lub śledzenia / monitorowania zmian w systemie plików?
Gdyby było wcześniej, spojrzałbym na
puppet
lubchef
.CFEngine
istnieje w celach komercyjnych.puppet
jest obecnie popularną bestią.Jeśli jest to późniejszy, ciężko jest monitorować zmiany w systemie plików, jednak istnieją programy takie jak
inotify
i audyt systemu plikówauditctl
lub SGI,fam
ale znowu jest to kwestia monitorowania i może być kosztowną implementacją (wydajność systemu plików może ulec pogorszeniu).źródło
Możesz sprawdzić,
rsnapshot
które przechowuje cogodzinne migawki dowolnych katalogów, które chcesz ... możesz ustawić 24 godziny, potem X dzienników, a następnie X tygodni, itd. Tyle, ile chcesz miejsca na dysku. Jest wystarczająco sprytny, aby twarde linkować, gdy pliki się nie zmieniają (wykorzystuje sięrsync
za kulisami.źródło
Możesz rozważyć użycie
git
. Możesz Skutecznie śledzi zmiany i jest bardzo łatwy w użyciu dla czegoś takiego.Uważam, że początkowa konfiguracja przebiega w ten sposób. Nie robiłem tego przez jakiś czas.
Takie podejście działa najlepiej w przypadku pojedynczego serwera, ale można je nakładać na inne narzędzia, które zmieniają repozytorium. Może to być przydatne w witrynach kanaryjskich, aby zapewnić, że wystąpią oczekiwane zmiany.
Klonowanie może być przydatne do obsługi plików wspólnych dla wielu serwerów.
źródło
Mam skrypt, który działa codziennie i tworzy kopie zapasowe plików, które zmieniły się od czasu poprzedniej kopii zapasowej:
Przechodzisz ścieżką, w której będą tworzone kopie zapasowe, a ten katalog będzie miał listę podobną do tej (po kilku uruchomieniach):
Możesz go nieco zmodyfikować, aby częściej zapisywać zmiany lub użyć inotify, aby wywołać zmodyfikowaną wersję skryptu, gdy zmiany się pojawią
/etc
.źródło