Kiểm tra cơ bản nhất để xem liệu một tệp có chứa một mẫu cụ thể hay không là với mẫu chung tiếng kêu
tiện ích dòng lệnh.
Với các cờ và tùy chọn chính xác, bạn có thể tạo tập lệnh cơ bản thực hiện điều gì đó dọc theo các dòng mã giả sau:
# Chia nhỏ các yếu tố bạn đang tìm kiếm
# trong các mẫu biểu thức chính quy cơ bản
# và lưu trữ chúng trong một mảng
MyRequiredEntries=("nameserver\s*1.1.2.2" "nameserver\s*3.3.4.4" "domain\s*example.com" "search\s.*abc\.com" "search\s.*abc\. bọc lưới")
# Lặp qua các phần tử của mảng
cho MyEntry trong "${MyRequiredEntries[@]}"
làm
# sử dụng mã thoát của grep -q để biết thêm logic
grep -q "$MyEntry" /etc/resolv.conf
MyResult=$?
nếu [ $MyResult -eq 0 ] ; sau đó
echo "làm gì đó khi resolv.conf chứa mẫu $MyEntry"
khác
echo "làm gì đó khi resolv.conf KHÔNG chứa mẫu $MyEntry"
fi
xong
Mà tất nhiên có thể được tinh chỉnh theo nhu cầu của bạn.
Như những người khác đã nhận xét: thay vì làm một trò chơi "phát hiện sự khác biệt" bạn có thể muốn lùi lại và suy nghĩ về lý do tại sao bạn chạy thử nghiệm này và bạn định làm gì với những phát hiện của mình.
Nếu kết quả cuối cùng là đảm bảo rằng tất cả các máy chủ đều có cấu hình chính xác, thì tốt nhất là bắt đầu quản lý chúng bằng hệ thống quản lý cấu hình và tránh những khác biệt này xảy ra trong tương lai.
Và nếu bắt đầu một giải pháp quản lý cấu hình trung tâm vẫn là một cầu nối quá xa, thay vì thử nghiệm và sau đó sửa các cài đặt theo cách thủ công: đừng bận tâm và hãy trực tiếp áp dụng các cài đặt chính xác ở mọi nơi...
Một lưu ý phụ: khi (một số) hệ thống của bạn được định cấu hình bằng DHCP, bạn có thể muốn bắt đầu bằng cách đẩy các cài đặt chính xác từ đó.