Xây dựng hệ thống cập nhật tệp tự động của riêng bạn
Mỗi quản trị viên máy chủ có một bộ chương trình tiện ích mà họ muốn sử dụng. Thông thường, các công cụ này được giữ trên mỗi máy để đảm bảo tính khả dụng và có thể đến từ nhiều nguồn khác nhau như Sysiternals và Nirsoft.
Để giữ cho các công cụ này được cập nhật lên các phiên bản mới nhất, việc cập nhật thủ công có thể khá tẻ nhạt và tốn thời gian, đặc biệt là khi có nhiều máy chủ trong hỗn hợp. Vì vậy, chúng tôi có một giải pháp cho bạn: một giải pháp đơn giản để thiết lập trong đó bạn duy trì một bộ công cụ duy nhất và tất cả các máy của bạn đồng bộ hóa các phiên bản công cụ của chúng với vị trí này.
Ví dụ: giả sử bạn duy trì các hệ thống trên 3 mạng riêng biệt và muốn có cùng một bộ 10 công cụ có sẵn trên tất cả các máy này cho các tập lệnh và bảo trì. Bạn sẽ có một thư mục chính của các công cụ (có sẵn thông qua một trang web) nơi bạn duy trì các phiên bản phát hành mà bạn muốn phân phối cho tất cả các hệ thống của bạn. Tất cả các hệ thống khác của bạn sau đó, điện thoại trực tiếp tại nhà vào thư mục chính này và tải xuống phiên bản tương ứng cục bộ. Quá trình này cung cấp một giải pháp tự động để luôn đảm bảo các phiên bản tiện ích của bạn nhất quán trên tất cả các hệ thống của bạn.
Thiết lập môi trường
Môi trường để làm việc này khá dễ dàng để thiết lập và sau khi thực hiện xong, nó thực sự là một bộ cài đặt và quên nó đi.
- Tạo một thư mục bên trong một trang web mà bạn có quyền truy cập vào đó sẽ lưu trữ dưới dạng thư mục chính (ví dụ: ToolsFolder).
- Tải lên tất cả các tiện ích phổ biến của bạn vào thư mục này.
- Trên các máy chủ bạn muốn đồng bộ hóa với trang chủ, hãy đặt tập lệnh bên dưới vào thư mục cục bộ chứa các công cụ (và WGet nếu bạn chưa có).
- Cập nhật URL vào thư mục chính của bạn (tức là http://my.site.com/ToolsFolder).
- Lên lịch cho tập lệnh chạy định kỳ và tất cả các công cụ cục bộ tồn tại trên trang chủ sẽ được đồng bộ hóa.
Sử dụng thay thế
Mặc dù chúng tôi đã đề cập đến việc sử dụng thực tế mà quản trị viên hệ thống có thể có đối với loại tập lệnh này, có nhiều tình huống khác mà tập lệnh này có thể có ích:
- Sử dụng để cập nhật các tiện ích Sysiternals và Nirsoft trên các máy cục bộ (URL được bao gồm trong tập lệnh).
- Sử dụng trên hệ thống máy tính để bàn để giữ một bộ tài liệu được đồng bộ hóa với bản sao chính.
Tập lệnh hỗ trợ cả mã hóa URL cũng như cung cấp một URL từ dòng lệnh (tức là UpdateFromWeb http://source.site.com/Stuff.zip), vì vậy hãy sử dụng trí tưởng tượng của bạn.
Kịch bản
@ECHO TITLE Cập nhật từ Web ECHO Cập nhật từ Web ECHO Viết bởi: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Đặt tập lệnh này vào thư mục chứa các tiện ích cần cập nhật. REM Yêu cầu WGet nằm trong cùng thư mục với tập lệnh này hoặc trong một vị trí được đặt trong biến PATH. URL REM để tìm kiếm các bản cập nhật trong trường hợp không có thông tin nào được chỉ định làm tham số. URL quan tâm của REM --- Sysiternals: http://live.sysiternals.com/tools REM NirSoft: http://www.nirsoft.net/panel SET URL = http: //my.site.com/ToolsFolder REM Nếu một tham số được chỉ định, sử dụng đó làm URL. NẾU KHÔNG % 1 == SET URL =% ~ 1 REM Đặt giá trị này thành 1 để khởi động lại các tác vụ bị dừng trong quá trình cập nhật. SET RestartKillsT task = 0 ECHO Thư mục được phát hiện:% ~ dp0% ~ d0 CD% ~ p0 ECHO. ECHO. SET NewFile = .NEW FOR / F %% A IN ('TRỰC TIẾP / B') DO WGet --output-document = "%% A% NewFile%" "% URL% / %% A" REM Xóa trống (không tìm thấy ) các tập tin. HÌNH THỨC / P. / C "CMD / C IF @ fsize == 0 DEL / F / Q @path" SET StartWhenFinished = "% TEMP% StartWhenFinished.tmp.txt" ECHO; Công cụ bị chấm dứt>% StartWhenFinished% FOR / F %% A IN (' TRỰC TIẾP / B ') DO (NẾU EXIST "%% A% NewFile%" (ECHO Đã tìm thấy phiên bản mới của: %% A REM Nếu tệp đang chạy, hãy tắt nó để có thể thay thế nó. FOR / F %% B IN ( 'TASKLIST') DO (IF / I [%% A] == [%% B] (ECHO %% B hiện đang chạy, quá trình tiêu diệt. ECHO %% A >>% StartWhenFinished% TASKKILL / IM "%% B" / T / F)) REM Thay thế bằng phiên bản mới. DEL / F / Q "%% A" RENAME "%% A% NewFile%" "%% A")) NẾU % RestartKillsT Nhiệm vụ% == 1 (ECHO. ECHO Tiếp tục các nhiệm vụ đã chết CHO / F "usBackq Skip = 1" %% A IN (% StartWhenFinished%) DO (ECHO Bắt đầu %% A BẮT ĐẦU "Khởi động lại %% A" "%% A")) NẾU EXIST "% StartWhenFinished% "DEL"% StartWhenFinished% "ENDLOCAL
Liên kết
Tải xuống ScriptFromWeb Script từ SysadminGeek.com
Tải xuống WGet