Construisez votre propre système de mise à jour automatique des fichiers

Table des matières:

Construisez votre propre système de mise à jour automatique des fichiers
Construisez votre propre système de mise à jour automatique des fichiers

Vidéo: Construisez votre propre système de mise à jour automatique des fichiers

Vidéo: Construisez votre propre système de mise à jour automatique des fichiers
Vidéo: Changer la couleur de la barre des taches - YouTube 2024, Avril
Anonim

Chaque administrateur de serveur dispose d’un ensemble de programmes utilitaires qu’ils aiment utiliser. En règle générale, ces outils sont conservés sur chaque machine pour garantir la disponibilité et peuvent provenir de diverses sources telles que Sysinternals et Nirsoft.

Pour que ces outils restent à jour avec les dernières versions, la mise à jour manuelle peut s'avérer fastidieuse et fastidieuse, en particulier lorsque plusieurs serveurs sont impliqués. Nous avons donc une solution pour vous: une solution simple à configurer dans laquelle vous maintenez un ensemble unique d’outils et où toutes vos machines synchronisent les versions de leurs outils à cet emplacement.

Par exemple, supposons que vous mainteniez des systèmes sur 3 réseaux distincts et aimiez disposer du même ensemble de 10 outils sur toutes ces machines pour les scripts et la maintenance. Vous disposerez d'un dossier principal d'outils (disponible via un site Web) dans lequel vous conservez les versions que vous souhaitez distribuer sur tous vos systèmes. Tous vos autres systèmes puis «phone home» dans ce dossier principal et télécharger la version correspondante localement. Ce processus fournit une solution automatisée pour toujours s'assurer que les versions de vos utilitaires sont cohérentes sur tous vos systèmes.

Mise en place de l'environnement

L’environnement dans lequel cela fonctionne est assez facile à configurer et, une fois cela fait, c’est vraiment une solution simple.

  1. Créez un dossier dans un site Web auquel vous avez accès et qui servira de dossier principal (par exemple, ToolsFolder).
  2. Téléchargez tous vos utilitaires communs dans ce dossier.

  3. Sur les serveurs que vous souhaitez synchroniser sur le site maître, placez le script ci-dessous dans le dossier local contenant les outils (et WGet si vous ne l'avez pas déjà).
  4. Mettez à jour l'URL dans votre dossier principal (c'est-à-dire https://my.site.com/ToolsFolder).

  5. Planifiez l'exécution périodique du script et tous les outils locaux existant sur le site principal seront synchronisés.

Autres utilisations

Bien que nous ayons décrit une utilisation pratique qu'un administrateur système peut avoir pour ce type de script, il existe de nombreuses autres situations dans lesquelles ce script peut s'avérer utile:

  • Utilisé pour mettre à jour les utilitaires Sysinternals et Nirsoft sur des machines locales (les URL sont incluses dans le script).
  • À utiliser sur un ordinateur de bureau pour conserver un ensemble de documents synchronisés avec une copie principale.

Le script prend en charge à la fois le codage en dur d’une URL et la fourniture d’une adresse à partir de la ligne de commande (par exemple, UpdateFromWeb https://source.site.com/Stuff.zip), utilisez donc votre imagination.

Le scénario

@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

Liens

Téléchargez le script UpdateFromWeb à partir de SysadminGeek.com

Télécharger Wet

Conseillé: