3Sep

Crea il tuo sistema di aggiornamento automatico dei file

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, soprattutto quando nel mix sono presenti più server. 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, "telefonano a casa" in questa cartella principale e scaricano 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 semplice da configurare e, una volta terminato, è davvero una soluzione "imposta e dimentica".

  1. Creare una cartella all'interno di un sito Web a cui si ha accesso e che fungerà da server della cartella principale( ad es. ToolFolder).
  2. Carica tutte le 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 della tua cartella principale( ad esempio http: //my.site.com/ ToolsFolder).
  5. Pianificare lo script da eseguire periodicamente e tutti gli strumenti locali presenti sul sito master verranno sincronizzati.

Alternate utilizza

Mentre abbiamo coperto un utilizzo 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 Sysinternals e utilità Nirsoft su macchine locali( gli URL sono inclusinella sceneggiatura).
  • Utilizzare su un sistema desktop per mantenere un set 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 http: //source.site.com/ Stuff.zip), quindi usa la tua immaginazione.

The Script

@ECHO OFF TITLE Aggiornamento da Web ECHO Aggiornamento da Web ECHO Scritto da: Jason Faulkner ECHO SysadminGeek.com ECHO.ECO.SETLOCAL EnableExtensions REM Inserire questo script nella cartella che contiene le utilità da aggiornare. REM Richiede che WGet si trovi nella stessa cartella di questo script o in una posizione impostata nella variabile PATH.URL REM per cercare gli aggiornamenti nell'evento nessuno è specificato come parametro. URL REM di interesse --- REM Sysinternals: http: strumenti //live.sysinternals.com/ REM NirSoft: http: //www.nirsoft.net/ pannello SET URL = http: //my.site.com/ ToolsFolder REM Se viene specificato un parametro, utilizzarlo come URL.IF NOT{ % 1} =={ } SET URL =% ~ 1 REM Impostare questo valore su 1 per riavviare le attività interrotte durante il processo di aggiornamento. SET RestartKilledTasks = 0 ECHO Directory rilevata:% ~ dp0% ~ d0 CD% ~ p0 ECHO.ECO.SET NewFile =. NEW FOR / F %% A IN( 'DIR / B') DO WGet --output-document = "%% A% NewFile%" "% URL% / %% A" REM Elimina vuoto( non trovato) File. FORFILI / P./ C "CMD / C IF @ fsize == 0 DEL / F / Q @path" SET StartWhenFinished = "% TEMP% StartWhenFinished.tmp.txt" ECHO; Strumenti terminati & gt;% StartWhenFinished% FOR / F %% A IN( 'DIR / B') DO( SE ESISTA "%% A% NewFile%"( ECHO Trovato nuova versione di: %% A REM Se il file è in esecuzione, uccidilo in modo cheFOR / F %% B IN( 'TASKLIST') DO( IF / I [%% A] == [%% B]( ECHO %% B è attualmente in esecuzione, processo di eliminazione ECHO %% A & gt; & gt;% StartWhenFinished% TASKKILL / IM "%% B" / T / F)) REM Sostituisci con la nuova versione. DEL / F / Q "%% A" RENAME "%% A% NewFile%" "%% A")) IF{ % RestartKilledTasks%} =={ 1}( ECHO ECHO Ripresa attività uccise FOR / F" usebackq skip = 1 "%% A IN( % StartWhenFinished%) DO( ECHO Starting %% A START" Riavvio%% A "" %% A ")) SE ESISTA"% StartWhenFinitura% "DEL"% StartWhenFinished% "ENDLOCAL

Collegamenti

Scarica UpdateFromWeb Script da SysadminGeek.com

Scarica WGet