Cách theo dõi các thay đổi trong / etc /


30

Tôi muốn theo dõi các thay đổi trong / etc /

Về cơ bản tôi muốn biết liệu một tập tin đã được thay đổi, bởi yum updatehoặc bởi một người dùng và cuộn nó lại nếu tôi không thích trò chuyện. Tôi đã nghĩ đến việc sử dụng một VCS như ảnh chụp nhanh git, LVM hoặc btrfs hoặc một chương trình sao lưu cho việc này.

Bạn muốn giới thiệu gì?


Câu trả lời:


32

Có vẻ như bạn muốn etckeeper từ Joey Hess của Debian, trong đó quản lý các tập tin dưới /etcsử dụng điều khiển phiên bản. Nó hỗ trợ git, mercurial, darcs và bazaar.

git là VCS được hỗ trợ tốt nhất bởi etckeeper và người dùng VCS rất có thể biết. Có thể là bản phân phối của bạn đã chọn sửa đổi trình quản lý, do đó, VCS mặc định của nó không phải là git. Bạn chỉ nên sử dụng etckeeper với một VCS khác với git nếu bạn yêu thích các VCS khác.


Etckeeper dễ dàng là một trong những công cụ quản trị có giá trị nhất mà tôi đã cài đặt trên máy của mình và là một trong những gói đầu tiên tôi cài đặt sau khi thiết lập một hệ thống mới.
hlovdal

6

Tôi không thể đưa ra cho bạn một đề nghị cuối cùng, nhưng tôi có thể chia sẻ một vài suy nghĩ về chủ đề này. Cho rằng / etc thường khá nhỏ, bạn có thể chỉ cần tìm một giải pháp tar-ball nén đơn giản. Nếu bạn hầu như không cần phải đi qua lịch sử, nó có thể là giải pháp dễ nhất để thiết lập.

Đối với tôi, sẽ rất tẻ nhạt khi quản lý khối lượng logic chỉ để theo dõi / etc và đặc biệt là tôi không nghĩ rằng ảnh chụp nhanh LVM được thiết kế để được tạo thường xuyên như là phương tiện để sao lưu một lượng dữ liệu tương đối nhỏ.

Btrfs đối với tôi dường như được trang bị tốt hơn cho việc này, nhưng nó vẫn chưa ổn định như, ví dụ, ext {2,3,4} và công cụ fsck cũng chưa được thực hiện. Nhưng nó liên tục trở nên tốt hơn.

Cá nhân tôi thực sự sử dụng git để theo dõi / etc nhưng bạn nên nhớ rằng git không lưu trữ thông tin về tập tin như quyền sở hữu hoặc sự cho phép! Và cũng kiểm tra xem thư mục .git có quyền hay không. Có một vài công cụ giúp giải quyết những vấn đề này. Bạn có thể muốn xem xét vv-thủ môn , mà đã được phát triển một cách chính xác cho các ca khúc giữ của / etc hoặc sử dụng tại một cái gì đó sử dụng ít nhất như gitperms hoặc metastore để theo dõi metainformation.


3

Để theo dõi các thay đổi "không mong muốn", chúng tôi sử dụng HIDS - trong trường hợp của chúng tôi, samhainnhững người khác là tripwirehoặc aide. Tất cả các hệ thống này sẽ cảnh báo bạn khi có điều gì đó không mong muốn xảy ra.

Không yum updatenên thay đổi bất cứ điều gì mà không để lại .rpmnew hoặc .rpmold, nếu tệp cấu hình được gắn cờ như vậy trong vòng / phút tương ứng.

Myselv Tôi thấy đó là một cách thực hành tốt để tạo một bản sao bảo mật của tệp mà tôi sẽ sửa đổi với cp -p origfile origfileYYYY-MM-DDngày của ngày hôm trước.

Nếu mọi thứ khác không thành công - tôi gọi cho những người dự phòng và yêu cầu khôi phục từ bản sao lưu "tốt" được biết đến cuối cùng.


1

Tôi nghĩ bạn có thể tạo một ảnh chụp nhanh các tập tin / thư mục trong /etc.

Đầu tiên tạo một danh sách các tập tin / etc / thư mục:

# ls -lha /etc >> /snapshotofetc

Và nếu bạn tạo một tập tin trong /etc

# touch testfile

và nếu bạn chụp lại một bức ảnh /etcgiống như những gì chúng ta đã làm trước đây

# ls -lhs /etc /lastsnapshotofetc

và sau đó bạn có thể so sánh sự khác biệt giữa 2 tệp như thế này:

# diff /snapshotofetc /lastsnapshotofetc


0

Bạn đang tìm kiếm quản lý cấu hình hoặc theo dõi / giám sát các thay đổi hệ thống tập tin?

Nếu nó sớm hơn, tôi sẽ xem xét puppethoặc chef. CFEnginetồn tại cho mục đích thương mại. puppetlà một con thú phổ biến những ngày này.

Nếu là phiên bản mới hơn, bạn khó theo dõi các thay đổi của hệ thống tệp, tuy nhiên có các chương trình như inotifykiểm toán hệ thống tệp auditctlhoặc SGI famnhưng một lần nữa, đó là một điều giám sát và có thể là việc thực hiện tốn kém (hiệu suất của hệ thống tệp có thể bị giảm).


vân vân có thể được giữ im lặng cho chỉ những thứ cụ thể / vv.
Nikhil Mulley

Xin lỗi vì sự không chính đáng đó. Tôi đã cải thiện câu hỏi.
taffer

0

Bạn có thể kiểm tra xem các rsnapshotảnh chụp nhanh hàng giờ của bất kỳ thư mục nào bạn muốn ... bạn có thể thiết lập nó để thực hiện trong 24 giờ, sau đó X nhật ký, sau đó là X tuần, v.v. Nhiều như bạn muốn cho không gian đĩa. Nó đủ thông minh để liên kết cứng khi các tệp không thay đổi (nó sử dụng rsyncphía sau hậu trường.


0

Bạn có thể cân nhắc sử dụng git. Bạn có thể Nó hiệu quả trong việc theo dõi các thay đổi và rất dễ sử dụng cho những thứ như thế này.

git status # Show changed files
git diff # Show file differences (paged automatically)
git commit -a # Commit all changes. 

Tôi tin rằng các thiết lập ban đầu đi như thế này. Tôi đã không làm điều đó trong một thời gian.

cd /etc
git init
git add *
git commit -a -m "Created repository"

Cách tiếp cận này hoạt động tốt nhất cho một máy chủ, nhưng có thể được xếp lớp với các công cụ khác thay đổi kho lưu trữ. Điều này có thể hữu ích trên (các) trang web hoàng yến của bạn để đảm bảo những thay đổi dự kiến ​​sẽ xảy ra.

Bạn có thể sử dụng nhân bản để xử lý tệp chung cho nhiều máy chủ.


0

Tôi có một tập lệnh chạy hàng ngày và sao lưu các tập tin đã thay đổi kể từ lần sao lưu trước:

#!bin/bash
ext=$(date +"%Y%m%d")_ChangeS
mkdir -p "$1/$ext" && \
  ionice -c3 rsync -ah --numeric-ids --inplace --backup \
                   --backup-dir="$1/$ext" \
                   --include="/etc" / "$1" && \
  rmdir --ignore-fail-on-non-empty "$1/$ext"

Bạn đi qua đường dẫn nơi sao lưu sẽ được tạo và thư mục đó sẽ có một danh sách tương tự như thế này (sau một vài lần chạy):

20120106_ChangeS  etc
$ls 20120106_ChangeS/etc/
cron.d

Bạn có thể sửa đổi nó một chút để ghi lại các thay đổi thường xuyên hơn hoặc sử dụng inotify để kích hoạt phiên bản sửa đổi của tập lệnh khi có thay đổi /etc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.