Bygg ditt eget automatiserte filoppdateringssystem

Innholdsfortegnelse:

Bygg ditt eget automatiserte filoppdateringssystem
Bygg ditt eget automatiserte filoppdateringssystem

Video: Bygg ditt eget automatiserte filoppdateringssystem

Video: Bygg ditt eget automatiserte filoppdateringssystem
Video: 50 Ultimate Excel Tips and Tricks for 2020 - YouTube 2024, April
Anonim

Hver serveradministrator har et sett med verktøy programmer de liker å bruke. Vanligvis holdes disse verktøyene på hver maskin for å sikre tilgjengelighet og kan komme fra en rekke kilder som Sysinternals og Nirsoft.

For å holde disse verktøyene oppdatert til de nyeste versjonene, kan manuell oppdatering være ganske kjedelig og tidkrevende, spesielt når det er flere servere i blandingen. Så vi har en løsning for deg: En enkel å sette opp løsning der du opprettholder et enkelt sett med verktøy og alle maskinene dine synkroniserer versjonene av verktøyene til denne plasseringen.

For eksempel, anta at du opprettholder systemer på 3 separate nettverk og liker å ha samme sett med 10 verktøy tilgjengelig på alle disse maskinene for skript og vedlikehold. Du vil ha en hovedmappe med verktøy (tilgjengelig via et nettsted) der du opprettholder utgivelsesversjonene du vil distribuere til alle systemene dine. Alle dine andre systemer, da, telefon hjemme, til denne hovedmappen og last ned den respektive versjonen lokalt. Denne prosessen gir en automatisk løsning for alltid å sørge for at bruksversjonene dine er konsistente på tvers av alle systemene dine.

Sette opp miljøet

Miljøet for at dette skal fungere er ganske enkelt å sette opp, og når det er gjort, er det virkelig en, og det glemmer det.

  1. Opprett en mappe inne på et nettsted du har tilgang til som vil server som hovedmappe (dvs. ToolsFolder).
  2. Last opp alle de vanlige verktøyene dine i denne mappen.

  3. På serverne du vil synkronisere til masteren, plasserer du skriptet nedenfor i den lokale mappen som inneholder verktøyene (og WGet hvis du ikke allerede har det).
  4. Oppdater nettadressen til hovedmappen din (dvs. https://my.site.com/ToolsFolder).

  5. Planlegg skriptet for å kjøre regelmessig, og alle de lokale verktøyene som finnes på hovedstedet vil bli synkronisert.

Alternativ bruk

Selv om vi har dekket en praktisk bruk, kan en systemadministrator ha for denne typen skript, det er mange andre situasjoner hvor dette skriptet kan komme til nytte:

  • Bruk til å oppdatere Sysinternals og Nirsoft-verktøy på lokale maskiner (URL-er er inkludert i skriptet).
  • Bruk på et stasjonært system for å holde et sett med dokumenter synkronisert med en hovedkopi.

Skriptet støtter både hardcoding en URL samt leverer en fra kommandolinjen (dvs. UpdateFromWeb https://source.site.com/Stuff.zip), så bruk fantasien din.

Manuset

@ECHO OFF TITLE Update From Web ECHO Update From Web ECHO Written by: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Place this script in the folder which contains the utilities to update. REM Requires WGet to be in the same folder as this script or in a location set in the PATH variable. REM URL to look for updates on in the event none is specified as a parameter. REM URL's of interest --- REM Sysinternals: https://live.sysinternals.com/tools REM NirSoft: https://www.nirsoft.net/panel SET URL=https://my.site.com/ToolsFolder REM If a parameter is specified, use that as the URL. IF NOT {%1}=={} SET URL=%~1 REM Set this value to 1 to restart tasks that are stopped during the update process. SET RestartKilledTasks=0 ECHO Detected directory: %~dp0 %~d0 CD %~p0 ECHO. ECHO. SET NewFile=.NEW FOR /F %%A IN ('DIR /B') DO WGet --output-document='%%A%NewFile%' '%URL%/%%A' REM Delete empty (not found) files. FORFILES /P. /C 'CMD /C IF @fsize==0 DEL /F /Q @path' SET StartWhenFinished='%TEMP%StartWhenFinished.tmp.txt' ECHO;Terminated tools > %StartWhenFinished% FOR /F %%A IN ('DIR /B') DO ( IF EXIST '%%A%NewFile%' ( ECHO Found new version of: %%A REM If the file is running, kill it so it can be replaced. FOR /F %%B IN ('TASKLIST') DO ( IF /I [%%A]==[%%B] ( ECHO %%B is currently running, killing process. ECHO %%A >> %StartWhenFinished% TASKKILL /IM '%%B' /T /F ) ) REM Replace with the new version. DEL /F /Q '%%A' RENAME '%%A%NewFile%' '%%A' ) ) IF {%RestartKilledTasks%}=={1} ( ECHO. ECHO Resuming killed tasks FOR /F 'usebackq skip=1' %%A IN (%StartWhenFinished%) DO ( ECHO Starting %%A START 'Restarting %%A' '%%A' ) ) IF EXIST '%StartWhenFinished%' DEL '%StartWhenFinished%' ENDLOCAL

lenker

Last ned UpdateFromWeb Script fra SysadminGeek.com

Last ned WGet

Anbefalt: