3Sep
Każdy administrator serwera ma zestaw programów narzędziowych, które lubią używać.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, szczególnie 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ć taki sam zestaw 10 narzędzi dostępnych na tych maszynach 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 naprawdę jest rozwiązaniem "ustaw i zapomnij".
- Utwórz folder wewnątrz witryny sieci Web, do której masz dostęp, a serwer będzie katalogiem głównym( np. Folder Narzędzi).
- Załaduj do tego folderu wszystkie popularne programy narzędziowe.
- 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).
- Zaktualizuj adres URL do folderu głównego( np. Http: //my.site.com/ Folder narzędzi).
- Zaplanuj uruchamianie skryptu okresowo, a wszystkie narzędzia lokalne istniejące w witrynie głównej zostaną zsynchronizowane.
Alternatywne zastosowania
Chociaż omówiliśmy praktyczne zastosowanie, 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 lokalnych komputerach( adresy URL są dołączonew skrypcie).
- Użyj w systemie biurkowym, aby zachować zestaw dokumentów zsynchronizowany z wzorcową kopią.
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.
Skrypt
@ECHO OFF TITLE Aktualizacja z sieci ECHO Aktualizacja z Web ECHO Autor: 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. URL REM jest interesujący --- REM Sysinternals: http: Narzędzia //live.sysinternals.com/ REM NirSoft: http: //www.nirsoft.net/ panel SET URL = http: //my.site.com/ ToolsFolder REM Jeśli parametr jest określony, 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) akta. FORFILES / P./ C "CMD / C IF @ fsize == 0 DEL / F / Q @path" SET StartWhenFinished = "% TEMP% StartWhenFinished.tmp.txt" ECHO; Zakończone narzędzia & gt;% Zaczynając Kończąc% FOR / F %% A IN( 'DIR / B') DO( JEŚLI EXIST "%% A% NewFile%"( ECHO Znaleziono nową wersję: %% A REM Jeśli plik jest uruchomiony, zabij go tak, abymożna zastąpić FOR / F %% B IN( "LISTA ZADANIA") DO( JEŻELI / I [%% A] == [%% B]( ECHO %% B jest aktualnie uruchomione, proces zabijania. ECHO %% A & gt; & gt;% StartWhenFinished% TASKKILL / IM "%% B" / T / F)) REM Zastąp nową wersją DEL / F / Q "%% A" RENAME "%% A% NewFile%" "%% A")) JEŚLI{ % RestartKilledTasks%} =={ 1}( ECHO. ECHO Kontynuacja zabitych zadań FOR / F" usebackq skip = 1 "%% A IN( % StartWhenfinished%) DO( ECHO Starting %% A START" Restartowanie%% A "" %% A ")) JEŚLI EXIST"% StartWhenFinished% "DEL"% StartWhenFinished% "ENDLOCALLinki
Pobierz UpdateFromWeb Script od SysadminGeek.com
Pobierz WGet