Crea il tuo sistema di aggiornamento automatico dei file

Sommario:

Crea il tuo sistema di aggiornamento automatico dei file
Crea il tuo sistema di aggiornamento automatico dei file

Video: Crea il tuo sistema di aggiornamento automatico dei file

Video: Crea il tuo sistema di aggiornamento automatico dei file
Video: Barra delle applicazioni - Le Opzioni - YouTube 2024, Novembre
Anonim

Ogni amministratore di server ha una serie di programmi di utilità che preferiscono utilizzare. In genere, questi strumenti sono conservati su ogni macchina per garantire la disponibilità e possono provenire da una varietà di fonti come Sysinternals e Nirsoft.

Per mantenere questi strumenti aggiornati alle ultime versioni, l'aggiornamento manuale può essere piuttosto noioso e dispendioso in termini di tempo, specialmente quando ci sono più server nel mix. Quindi abbiamo una soluzione per te: una soluzione semplice da configurare dove mantieni un unico set di strumenti e tutte le tue macchine sincronizzano le versioni dei loro strumenti in questa posizione.

Ad esempio, supponiamo di mantenere i sistemi su 3 reti separate e di avere lo stesso set di 10 strumenti disponibili su tutte queste macchine per script e manutenzione. Avresti una cartella principale di strumenti (disponibile tramite un sito Web) in cui mantieni le versioni di rilascio che desideri distribuire a tutti i tuoi sistemi. Tutti gli altri sistemi, quindi, il telefono a casa in questa cartella principale e scaricare la rispettiva versione localmente. Questo processo fornisce una soluzione automatizzata per assicurarti sempre che le tue versioni di utilità siano coerenti su tutti i tuoi sistemi.

Impostazione dell'ambiente

L'ambiente per cui funziona è piuttosto facile da configurare e, una volta fatto, è davvero una soluzione che si dimentica.

  1. Creare una cartella all'interno di un sito Web a cui si ha accesso e che fungerà da server come cartella principale (ad es. ToolFolder).
  2. Carica tutte le tue utilità comuni in questa cartella.

  3. Sui server che si desidera sincronizzare con il sito principale, posizionare lo script in basso nella cartella locale che contiene gli strumenti (e WGet se non lo si possiede già).
  4. Aggiorna l'URL nella tua cartella principale (ad esempio https://my.site.com/ToolsFolder).

  5. Pianificare l'esecuzione periodica dello script e sincronizzare tutti gli strumenti locali esistenti sul sito master.

Usi alternativi

Mentre abbiamo coperto un uso pratico che un amministratore di sistema può avere per questo tipo di script, ci sono molte altre situazioni in cui questo script può tornare utile:

  • Utilizzare per aggiornare i programmi di utilità Sysinternals e Nirsoft su macchine locali (gli URL sono inclusi nello script).
  • Utilizzare su un sistema desktop per mantenere una serie di documenti sincronizzati con una copia master.

Lo script supporta sia l'hardcoding di un URL sia quello che ne fornisce uno dalla riga di comando (ad esempio UpdateFromWeb https://source.site.com/Stuff.zip), quindi utilizza la tua immaginazione.

Il copione

@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

link

Scarica UpdateFromWeb Script da SysadminGeek.com

Scarica WGet

Consigliato: