3Sep

Bygg ditt eget automatiska filuppdateringssystem

Varje serveradministratör har en uppsättning verktygsprogram som de tycker om att använda. Vanligtvis hålls dessa verktyg på varje maskin för att säkerställa tillgänglighet och kan komma från en mängd olika källor, såsom Sysinternals och Nirsoft.

För att hålla dessa verktyg uppdaterade till de senaste versionerna kan manuell uppdatering vara ganska tråkig och tidskrävande, särskilt när det finns flera servrar i mixen. Så vi har en lösning för dig: En enkel lösning där du håller en enda uppsättning verktyg och alla dina maskiner synkroniserar versionerna av deras verktyg till den här platsen.

Anta till exempel att du underhåller system på 3 separata nätverk och gillar att ha samma uppsättning med 10 verktyg tillgängliga på alla dessa maskiner för skript och underhåll. Du skulle ha en huvudmapp med verktyg( tillgänglig via en webbplats) där du behåller versionsversionerna du vill distribuera till alla dina system. Alla dina andra system "telefon hem" till den här huvudmappen och hämta respektive version lokalt. Denna process ger en automatiserad lösning för att alltid vara säker på att användningsversionerna överensstämmer över alla dina system.

Ställa in miljön

Miljön för att detta ska fungera är ganska lätt att installera och, när det är gjort, är det verkligen en "set it and forget it" -lösning.

  1. Skapa en mapp inuti en webbplats som du har tillgång till som kommer att servera som huvudmappen( dvs ToolsFolder).
  2. Ladda upp alla dina vanliga verktyg till den här mappen.
  3. På servrarna som du vill synkronisera med mastersidan, placera manuset nedan i den lokala mappen som innehåller verktygen( och WGet om du inte redan har det).
  4. Uppdatera webbadressen till din huvudmapp( dvs. http: //my.site.com/ ToolsFolder).
  5. Planera att skriptet körs regelbundet och alla lokala verktyg som finns på mastersidan kommer att synkroniseras.

Alternativ användning

Medan vi har täckt en praktisk användning som en systemadministratör kan ha för denna typ av skript finns det många andra situationer där det här skriptet kan vara användbart:

  • Använd för att uppdatera Sysinternals och Nirsoft-verktyg på lokala maskiner( URL: er ingåri manuset).
  • Använd på ett skrivbordssystem för att hålla en uppsättning dokument synkroniserade med en huvudkopia.

Skriptet stöder både hardcoding en URL samt levererar en från kommandoraden( dvs UpdateFromWeb http: //source.site.com/ Stuff.zip), så använd din fantasi.

Skriptet

@ECHO OFF TITLE Uppdatering från Web ECHO Uppdatering från Web ECHO Skriven av: Jason Faulkner ECHO SysadminGeek.com ECHO.EKO.SETLOCAL EnableExtensions REM Placera det här skriptet i mappen som innehåller de verktyg som ska uppdateras. REM Kräver att WGet ska vara i samma mapp som det här skriptet eller på en plats som anges i PATH-variabeln. REM-URL för att leta efter uppdateringar om det inte anges något som en parameter. REM-URL: s intressanta --- REM Sysinternals: http: //live.sysinternals.com/-verktyg REM NirSoft: http: //www.nirsoft.net/-panelen SET-URL = http: //my.site.com/ ToolsFolder REM Om en parameter är specificerad, använd den som URL.OM INTE{ % 1} =={ } SET-URL =% ~ 1 REM Ställ in det här värdet till 1 för att starta om uppgifter som stoppas under uppdateringsprocessen. SET RestartKilledTasks = 0 ECHO Upptäckt katalog:% ~ dp0% ~ d0 CD% ~ p0 ECHO.EKO.SET NewFile =. NYW FOR / F %% A IN( 'DIR / B') DO WGet --output-document = "%% A% NewFile%" "% URL% / %% A" REM Ta bort tom) filer. FORFILER / P./ C "CMD / C IF @ fsize == 0 DEL / F / Q @ path" SET StartWhenFinished = "% TEMP% StartWhenFinished.tmp.txt" ECHO; Terminerade verktyg & gt;% StartAnvänd% FOR / F %% A IN( 'DIR / B') DO( OM EXIST "%% A% NewFile%"( ECHO hittade ny version av: %% A REM Om filen körs, döda den såkan ersättas. FOR / F %% B IN( 'TASKLIST') DO( IF / I [%% A] == [%% B]( ECHO %% B körs för närvarande och dödar processen. ECHO %% A & gt; & gt;% StartWhenFinished% TASKKILL / IM "%% B" / T / F)) REM Ersätt med den nya versionen. DEL / F / Q "%% A" RENAME "%% A% NewFile%" "%% A")) OM{ % RestartKilledTasks%} =={ 1}( ECHO. ECHO Återuppta dödade uppgifter FOR / F" usebackq skip = 1 "%% A IN( % StartWhenFinished%) DO( ECHO Starta %% A START" Starta om%% A "" %% A ")) OM EXIST"% StartWhenFinished% "DEL"% StartWhenFinished% "ENDLOCAL

Länkar

Hämta UpdateFromWeb Script från SysadminGeek.com

Hämta WGet