If-Koubou

Zbuduj swój własny zautomatyzowany system aktualizacji plików

Zbuduj swój własny zautomatyzowany system aktualizacji plików (Jak)

Każdy administrator serwera ma zestaw programów narzędziowych, z których chce korzystać. Zazwyczaj narzędzia te są przechowywane na każdej maszynie w celu zapewnienia dostępności i mogą pochodzić z różnych źródeł, takich jak Sysinternals i Nirsoft.

Aby zaktualizować te narzędzia do najnowszych wersji, ręczna aktualizacja może być dość uciążliwa i czasochłonna, zwłaszcza gdy w miksie jest wiele serwerów. Mamy więc rozwiązanie dla Ciebie: proste do skonfigurowania rozwiązanie, w którym utrzymujesz jeden zestaw narzędzi, a wszystkie Twoje komputery synchronizują wersje swoich narzędzi z tą lokalizacją.

Załóżmy na przykład, że utrzymujesz systemy w 3 osobnych sieciach i chcesz mieć taki sam zestaw 10 narzędzi dostępnych na wszystkich tych komputerach do obsługi skryptów i konserwacji. Będziesz mieć główny folder narzędzi (dostępny za pośrednictwem strony internetowej), w którym będziesz utrzymywał wersje wydania, które chcesz dystrybuować do wszystkich systemów. Wszystkie inne systemy następnie "telefon do domu" do tego folderu głównego i pobrać odpowiednią wersję lokalnie. Ten proces zapewnia zautomatyzowane rozwiązanie, które zawsze zapewnia spójność wersji narzędzi we wszystkich systemach.

Konfigurowanie środowiska

Środowisko, w którym to działa, jest dość łatwe do skonfigurowania i, po wykonaniu, jest naprawdę rozwiązaniem "ustaw i zapomnij".

  1. Utwórz folder wewnątrz witryny sieci Web, do której masz dostęp, a serwer jako folder główny (np. Folder narzędzi).
  2. Prześlij wszystkie popularne programy narzędziowe do tego folderu.
  3. Na serwerach, które chcesz zsynchronizować z witryną główną, umieść poniższy skrypt w folderze lokalnym, w którym znajdują się narzędzia (i WGet, jeśli jeszcze go nie masz).
  4. Zaktualizuj adres URL do głównego folderu (np. Http://my.site.com/ToolsFolder).
  5. Zaplanuj uruchamianie skryptu okresowo, a wszystkie lokalne narzędzia istniejące w witrynie głównej zostaną zsynchronizowane.

Alternatywne zastosowania

Chociaż mamy do czynienia z praktycznym użyciem, jakie administrator systemu może mieć dla tego typu skryptów, istnieje wiele innych sytuacji, w których ten skrypt może się przydać:

  • Służy do aktualizacji narzędzi Sysinternals i Nirsoft na komputerach lokalnych (adresy URL są zawarte w skrypcie).
  • Użyj w systemie komputerowym, aby zachować zestaw dokumentów zsynchronizowany z kopią wzorcową.

Skrypt obsługuje zarówno kodowanie dynamiczne adresu URL, jak i dostarczanie go z wiersza poleceń (np. UpdateFromWeb http://source.site.com/Stuff.zip), więc użyj wyobraźni.

Scenariusz

@ECHO OFF TITLE Aktualizacja z Web ECHO Aktualizacja z Web ECHO Napisane przez: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Umieść ten skrypt w folderze zawierającym narzędzia do aktualizacji. REM wymaga, aby WGet znajdował się w tym samym folderze co ten skrypt lub w lokalizacji ustawionej w zmiennej PATH. REM URL, aby wyszukać aktualizacje w przypadku, gdy żadna nie jest określona jako parametr. Adres URL REM jest interesujący --- REM Sysinternals: http://live.sysinternals.com/tools REM NirSoft: http://www.nirsoft.net/panel SET URL = http: //my.site.com/ToolsFolder REM Jeśli podany jest parametr, użyj go jako adresu URL. JEŚLI NIE % 1 ==  SET URL =% ~ 1 REM Ustaw tę wartość na 1, aby ponownie uruchomić zadania zatrzymane podczas procesu aktualizacji. SET RestartKilledTasks = 0 ECHO Wykryty katalog:% ~ dp0% ~ d0 CD% ~ p0 ECHO. ECHO. SET NewFile = .NEW FOR / F %% A IN ('DIR / B') DO WGet --output-document = "%% A% NewFile%" "% URL% / %% A" REM Usuń puste (nie znaleziono ) pliki. FORFILES / P. / C "CMD / C IF @ fsize == 0 DEL / F / Q @path" SET StartWhenFinished = "% TEMP% StartWhenFinished.tmp.txt" ECHO; Zakończone narzędzia>% StartWhenFinished% FOR / F %% A IN (' DIR / B ') DO (JEŚLI EXIST "%% A% NewFile%" (ECHO Znaleziono nową wersję: %% A REM Jeśli plik jest uruchomiony, należy go zabić, aby można go było zastąpić. FOR / F %% B IN ( 'TASKLIST') DO (JEŻELI / I [%% A] == [%% B] (ECHO %% B jest aktualnie uruchomione, proces zabijania ECHO %% A >>% StartWhenFinished% TASKKILL / IM "%% B" / T / F)) REM Zamień na nową wersję DEL / F / Q "%% A" RENAME "%% A% NewFile%" "%% A")) IF % RestartKilledTasks% == 1 (ECHO. ECHO Kontynuacja zabitych zadań FOR / F "usebackq skip = 1" %% A IN (% StartWhenFinished%) DO (ECHO Starting %% A START "Restart %% A" "%% A")) IF EXIST "% StartWhenFinished% "DEL"% StartWhenFinished% "ENDLOCAL 

Spinki do mankietów

Pobierz skrypt UpdateFromWeb ze strony SysadminGeek.com

Pobierz WGet