Câu trả lời:
Để tìm tất cả các tệp cấu hình được quản lý Debian đã được thay đổi từ mặc định, bạn có thể sử dụng một lệnh như thế này.
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}'
Chỉnh sửa (hoạt động với các hệ thống cục bộ):
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
Chỉnh sửa (hoạt động với các gói có OK trong tên tệp):
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
mặc dù để tránh lọc các tệp OK với awk
(và do đó các vấn đề nội địa hóa?). Nhân tiện: bạn không biết cách bao gồm các tệp không bị theo dõi trong / etc? Giống như những người trong / etc / apache2 / site-Available chẳng hạn?
debsums -ec
) thực sự hoạt động như thế nào , bởi vì nó dường như nhận được ít kết quả hơn thế này.
debsums -ec
: nếu tôi sử dụng phương pháp này để khởi tạo lại các phiên bản gói , thì một số tệp được liệt kê qua phương thức này sẽ không thay đổi.
find /etc -type f \( -iname '*.ucf-dist' -o -iname '*.ucf-old' -o -iname '*.dpkg-old' -o -iname '*.dpkg-dist' \) -print | sort
từ man debsums
:
debsums -ce
List changed configuration files.
Xin lỗi vì necro, nhưng trong khi câu trả lời của @ naught101 là chính xác cho các tệp đã sửa đổi , thì nó không giúp ích gì cho các tệp được thêm vào . Giải pháp của @ Graeme là tốt, nhưng phụ thuộc vào người quản lý; Tôi không muốn sửa đổi hệ thống tập tin.
find /etc -type f | grep -vFf <(debsums -e -r /etc | sed 's/[[:space:]]*OK$//')
Tìm tập tin trong / etc / mà debsums
không không báo cáo là hợp lệ. Điều này có nghĩa là các tệp không được theo dõi hoặc các tệp không "OK" (băm không khớp).
debsums --list-missing
để kiểm tra nếu một hoặc nhiều gói bị thiếu tổng kiểm của các tệp được bao gồm. Ngày nay đầu ra nên trống.
Tôi thường thích thiết lập etckeeper trên hệ thống ngay lập tức. Với một cái gì đó như vân vân, tôi có thể tìm thấy không chỉ khi tệp khác nhau, mà tôi thực sự có thể nhận được một khác biệt chính xác là nó khác nhau như thế nào.
Xem:
Điều này có thể là quá mức nhưng vì ai đó đã đề cập đến người quản lý và trong khi tôi đang điều tra rằng tôi đã bắt gặp viên ngọc khác này có thể hữu ích hơn nếu bạn đang cố gắng tìm ra những điều "sau thực tế".
http://devstructure.com/blueprint/
Blueprint là một công cụ quản lý cấu hình đơn giản giúp đảo ngược các máy chủ kỹ sư. Nó chỉ ra những gì bạn đã thực hiện thủ công, lưu trữ cục bộ trong kho Git, tạo mã có thể tạo lại những nỗ lực của bạn và giúp bạn triển khai những thay đổi đó vào sản xuất.
Điều này khởi hành một chút so với câu hỏi ban đầu ở chỗ nó cũng sẽ cung cấp các tệp cấu hình ADDED thay vì chỉ các tệp được sửa đổi. Mặc dù các tệp không được bao gồm trong bất kỳ gói gỡ lỗi nào cũng sẽ bị bắt. Cả hai hành vi cũng có thể được mong muốn.
Nó phụ thuộc vào việc sử dụng etckeeper với git vcs lý tưởng ngay từ đầu, mặc dù nó cũng hoạt động nếu bạn thêm và cam kết các tệp đã thay đổi trước đó sau lần cam kết đầu tiên. Lưu ý rằng một điều đáng chú ý ở đây là Ubuntu cấu hình etckeeper để sử dụng Bazaar theo mặc định (Bazaar tài trợ Canonical), thay vì mặc định git được đặt bởi các nhà phát triển etckeeper.
Ý tưởng là để có được một danh sách tất cả các cam kết không được thực hiện tự động sau khi chạy apt. Sau đó liệt kê các tệp đã thay đổi trong tất cả trừ lần cam kết đầu tiên:
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"
Chuỗi bộ lọc cũng có thể được mở rộng để bao gồm các cam kết khác nếu chúng được đặt tên nhất quán. Có thể tốt cho việc cài đặt trực tiếp từ tệp deb hoặc từ mã nguồn.
Một tập tin đáng chú ý mà cái này chọn cho tôi là của tôi xorg.conf
- bạn hiện phải tự thêm nó vào / etc / X11 nếu bạn cần. Ngoài ra các default/grub
thay đổi của tôi được chọn, có vẻ như điều này được sao chép từ / usr / share bởi một tập lệnh cài đặt bài đăng thay vì được liệt kê như một phần của gói. Nếu một thay đổi đã được thực hiện đối với một tệp như thế này, các phương thức liên quan đến dpkg sẽ không tiết lộ nó.
git log
hiện có một --invert-grep
tùy chọn cho phép lọc ra các cam kết không thú vị mà không cần sử dụng sed
.