Yanıtlar:
Varsayılandan değiştirilen tüm Debian yönetilen konfigürasyon dosyalarını bulmak için böyle bir komut kullanabilirsiniz.
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}'
Düzenleme (yerelleştirilmiş sistemlerle çalışır):
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}' | sort | less
Düzenle (dosya adında Tamam olan paketlerle çalışır):
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK$/{print $1}' | sort | less
md5sum --quiet
Tamam dosyalarını filtrelemekten kaçınmak için kullanabilirsiniz awk
(ve böylece yerelleştirme sorunları?). Bu arada: / etc içine izlenmeyen dosyaları nasıl ekleyeceğinizi bilmiyor musunuz? Örneğin / etc / apache2 / sites'de bulunanlar gibi mi?
debsums -ec
) gerçekte nasıl çalıştığını bilmek ilginç olurdu , çünkü bundan daha az sonuç alıyor gibi görünüyor.
debsums -ec
: bu yöntemi paket sürümlerini yeniden kurmak için kullanırsam, bu yöntemle listelenen dosyaların bazıları değişmez.
find /etc -type f \( -iname '*.ucf-dist' -o -iname '*.ucf-old' -o -iname '*.dpkg-old' -o -iname '*.dpkg-dist' \) -print | sort
from man debsums
:
debsums -ce
List changed configuration files.
Necro için üzgünüm, fakat @ naught101 adlı kullanıcının yanıtı değiştirilmiş dosyalar için doğru olsa da, eklenen dosyalar için yardımcı olmadı . @ Graeme'nin çözümü iyi, ancak eteeper'a bağlı; Dosya sistemini değiştirmek istemiyorum.
find /etc -type f | grep -vFf <(debsums -e -r /etc | sed 's/[[:space:]]*OK$//')
/ Etc / içinde debsums
geçerli olmayan raporları bulun . Bu, izlenmemiş dosyalar veya "Tamam" olmayan dosyalar (hash'ler eşleşmiyor) anlamına gelir.
debsums --list-missing
bir veya daha fazla paketin içerilen dosyaların sağlama toplamı olup olmadığını kontrol etmek için de çalıştırılması gerekir . Günümüzde çıktı boş olmalıdır.
Genelde sisteme hemen hemen bir aracı takmayı seviyorum. Etckeeper gibi bir şey ile sadece dosya farklı olduğunda değil, aslında tam olarak ne kadar farklı olduğuna dair bir fark da bulabilirim.
Görmek:
Bu fazlaca olabilir, ancak biri eterden bahsettiğinden ve araştırma yaparken, "gerçekte sonra" bazı şeyleri anlamaya çalışıyorsanız, daha yararlı olabilecek diğer gemiyle karşılaştığımdan beri.
http://devstructure.com/blueprint/
Blueprint, sunucuları tersine işleyen basit bir konfigürasyon yönetim aracıdır. El ile yaptığınızı tespit eder, yerel olarak Git deposunda saklar, çabalarınızı yeniden yaratabilecek kod üretir ve bu değişiklikleri üretime dağıtmanıza yardımcı olur.
Bu, sadece değiştirilmiş olanların aksine, ADDED yapılandırma dosyalarını da vereceği yönündeki asıl sorudan biraz uzaklaşıyor. Her ne kadar deb paketinde bulunmayan dosyalar da yakalanacak. Her iki davranış da arzu edilebilir.
Etckeeper'ı git vcs ile en baştan ideal olarak kullanmaya bağlıdır, ancak ilk işlemden sonra daha önce değiştirilmiş dosyaları ekleyip eklerseniz de çalışması gerekir . Buradakilerin, Ubuntu'nun etckeeper geliştiricileri tarafından ayarlanan git varsayılanı yerine varsayılan olarak Bazaar'ı (Canonical sponsoru Bazaar) kullanması için etckeeper'ı yapılandırdığını unutmayın.
Buradaki fikir, otomatik olarak yapılmayan ve apt çalıştırılmamış tüm taahhütlerin bir listesini almaktır. Ardından, değiştirilen dosyaları, ilk işin dışında listele:
filter_sed="/committing changes in \/etc after apt run\$/d"
etckeeper vcs log --oneline |
sed "$filter_sed; \$d; s/ .*//" |
xargs etckeeper vcs show --name-only --format=format: |
sort |
uniq |
sed "/^\$/d"
Filtre dizgisi, eğer tutarlı bir şekilde adlandırılırlarsa, diğer taahhütleri kapsayacak şekilde genişletilebilir. Doğrudan bir deb dosyasından veya kaynak koddan kurulum için iyi olabilir.
Bunun benim için aldığı önemli bir dosya benim. xorg.conf
- İhtiyacınız olursa, şu anda / etc / X11 dosyasına kendiniz eklemelisiniz. Ayrıca default/grub
değişikliklerim toplandı, görünüşe göre bir paketin parçası olarak listelenmek yerine / usr / share'ten post install betiği ile kopyalanıyor. Böyle bir dosyada değişiklik yapılmışsa, dpkg ile ilgili yöntemler onu ortaya çıkarmaz.
git log
şimdi --invert-grep
ilginç olmayan komisyonların kullanılmadan filtrelenmesini sağlayan bir seçenek var sed
.