3Sep

Bouw je eigen geautomatiseerde bestandsupdatesysteem

click fraud protection

Elke serverbeheerder heeft een aantal hulpprogramma's die ze graag gebruiken. Deze hulpmiddelen worden meestal op elke machine bewaard om beschikbaarheid te garanderen en kunnen afkomstig zijn van verschillende bronnen, zoals Sysinternals en Nirsoft.

Om deze hulpmiddelen bijgewerkt te houden naar de nieuwste versies, kan handmatig updaten behoorlijk vervelend en tijdrovend zijn, vooral als er meerdere servers in de mix zitten. We hebben dus een oplossing voor u: een eenvoudig te installeren oplossing waarbij u een enkele set hulpprogramma's onderhoudt en al uw machines de versies van hun hulpprogramma's synchroniseren met deze locatie.

Stel dat u systemen op 3 verschillende netwerken onderhoudt en dezelfde set van 10 hulpprogramma's op al deze computers beschikbaar wilt hebben voor scripts en onderhoud. U zou een hoofdmap met hulpmiddelen hebben( beschikbaar via een website) waar u de gewenste release-versies voor al uw systemen onderhoudt. Al uw andere systemen bellen vervolgens naar deze hoofdmap en downloaden de betreffende versie lokaal. Dit proces biedt een geautomatiseerde oplossing om altijd ervoor te zorgen dat uw hulpprogramma-versies consistent zijn op al uw systemen.

instagram viewer

De omgeving instellen

De omgeving waarin dit werkt, is vrij eenvoudig in te stellen en is, eenmaal gereed, echt een "zet het in en vergeet het maar" -oplossing.

  1. Maak een map binnen een website waartoe u toegang hebt en die als de hoofdmap zal serveren( bijv. ToolsFolder).
  2. Upload al uw gebruikelijke hulpprogramma's naar deze map.
  3. Plaats op de servers die u wilt synchroniseren met de hoofdsite het onderstaande script in de lokale map waarin de hulpprogramma's zijn opgeslagen( en WGet als u dit nog niet hebt).
  4. Werk de URL bij naar uw hoofdmap( d.w.z. http: //my.site.com/ ToolsFolder).
  5. Plan het script om periodiek te worden uitgevoerd en alle lokale hulpmiddelen die op de mastersite staan, worden gesynchroniseerd.

Alternate Uses

Hoewel we een praktisch gebruik hebben behandeld dat een systeembeheerder mogelijk voor dit type script heeft, zijn er veel andere situaties waarin dit script van pas kan komen:

  • Gebruik om Sysinternals en Nirsoft-hulpprogramma's bij te werken op lokale computers( URL's zijn opgenomenin het script).
  • Gebruik op een desktopsysteem om een ​​set documenten gesynchroniseerd met een origineel te houden.

Het script ondersteunt zowel het hardcoderen van een URL als het leveren van een URL vanaf de opdrachtregel( bijv. UpdateFromWeb http: //source.site.com/ Stuff.zip), dus gebruik uw verbeeldingskracht.

Het script

@ECHO OFF TITLE Update van Web ECHO-update van Web ECHO Geschreven door: Jason Faulkner ECHO SysadminGeek.com ECHO.ECHO.SETLOCAL EnableExtensions REM Plaats dit script in de map die de te updaten hulpprogramma's bevat. REM Vereist dat WGet zich in dezelfde map bevindt als dit script of op een locatie die is ingesteld in de variabele PATH.REM-URL om updates op te zoeken in het geval er geen is opgegeven als parameter. REM-URL's van belang --- REM Sysinternals: http: //live.sysinternals.com/-tools REM NirSoft: http: //www.nirsoft.net/ paneel SET URL = http: //my.site.com/ ToolsFolder REM Als een parameter is opgegeven, gebruik die dan als de URL.INDIEN NIET{ % 1} =={ } SET URL =% ~ 1 REM Stel deze waarde in op 1 om taken die zijn gestopt tijdens het updateproces opnieuw te starten. SET RestartKilledTasks = 0 ECHO gedetecteerde map:% ~ dp0% ~ d0 CD% ~ p0 ECHO.ECHO.SET NewFile =. NEW FOR / F %% A IN( 'DIR / B') DO WGet --output-document = "%% A% NewFile%" "% URL% / %% A" REM Verwijderen leeg( niet gevonden) bestanden. FORFILES / P./ C "CMD / C IF @ fsize == 0 DEL / F / Q @path" SET StartWhenFinished = "% TEMP% StartWhenFinished.tmp.txt" ECHO; Uitgesloten hulpmiddelen & gt;% StartWhenFinished% FOR / F %% A IN( 'DIR / B') DO( ALS BESTAANDE "%% A% NewFile%"( ECHO Gevonden nieuwe versie van: %% A REM Als het bestand wordt uitgevoerd, kill het zodat hetkan worden vervangen FOR / F %% B IN( 'TASKLIST') DO( ALS / I [%% A] == [%% B]( ECHO %% B is momenteel actief, dodingsproces.) ECHO %% A & gt; & gt;% StartWhenFinished% TASKKILL / IM "%% B" / T / F)) REM Vervang door de nieuwe versie DEL / F / Q "%% A" RENAME "%% A% NewFile%" "%% A")) ALS{ % RestartKilledTasks%} =={ 1}( ECHO.) ECHO Gedode taken hervatten FOR / F" usebackq skip = 1 "%% A IN( % StartWhenFinished%) DO( ECHO Starting %% A START" Opnieuw opstarten%% A "" %% A ")) IF EXIST"% StartWhenFinished% "DEL"% StartWhenFinished% "ENDLOCAL

Koppelingen

Download UpdateFromWeb Script van SysadminGeek.com

Download WGet