Główna » jak » Zbuduj swój własny zautomatyzowany system aktualizacji plików

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

    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 w konfiguracji 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 oddzielnych sieciach i chcesz mieć ten 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 do działania 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 uruchomienie skryptu, 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).
    • Skorzystaj z systemu komputerowego, aby zachować zestaw dokumentów zsynchronizowanych 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 swojej 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. Adresy URL REM są interesujące --- 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, które zostały 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 Wznawianie 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 UpdateFromWeb Script z SysadminGeek.com

    Pobierz WGet