Construye tu propio sistema automatizado de actualización de archivos

Tabla de contenido:

Video: Construye tu propio sistema automatizado de actualización de archivos

Video: Construye tu propio sistema automatizado de actualización de archivos
Video: SOLUCIÓN: Porque no puedo Enviar ni Recibir correos electrónicos en Outlook 2024, Marcha
Construye tu propio sistema automatizado de actualización de archivos
Construye tu propio sistema automatizado de actualización de archivos
Anonim

Cada administrador de servidor tiene un conjunto de programas de utilidad que les gusta usar. Normalmente, estas herramientas se guardan en cada máquina para garantizar la disponibilidad y pueden provenir de una variedad de fuentes, como Sysinternals y Nirsoft.

Para mantener estas herramientas actualizadas a las últimas versiones, la actualización manual puede ser bastante tediosa y lenta, especialmente cuando hay varios servidores en la mezcla. Por lo tanto, tenemos una solución para usted: una solución fácil de configurar en la que usted mantiene un único conjunto de herramientas y todas sus máquinas sincronizan las versiones de sus herramientas en esta ubicación.

Por ejemplo, supongamos que mantiene sistemas en 3 redes separadas y le gusta tener el mismo conjunto de 10 herramientas disponibles en todas estas máquinas para scripts y mantenimiento. Tendría una carpeta maestra de herramientas (disponible a través de un sitio web) donde mantendrá las versiones de lanzamiento que desea distribuir a todos sus sistemas. Todos los demás sistemas, luego, envíen un teléfono a esta carpeta maestra y descarguen la versión correspondiente localmente. Este proceso proporciona una solución automatizada para asegurarse siempre de que las versiones de sus utilidades sean consistentes en todos sus sistemas.

Configurando el medio ambiente

El entorno para que esto funcione es bastante fácil de configurar y, una vez hecho esto, es realmente una solución, olvídala y olvídala.

  1. Cree una carpeta dentro de un sitio web al que tenga acceso, que será el servidor como la carpeta maestra (es decir, ToolsFolder).
  2. Sube todas tus utilidades comunes a esta carpeta.

  3. En los servidores que desea sincronizar con el sitio maestro, coloque el script a continuación en la carpeta local que contiene las herramientas (y WGet si aún no lo tiene).
  4. Actualice la URL a su carpeta maestra (es decir, https://my.site.com/ToolsFolder).

  5. Programe el script para que se ejecute periódicamente y se sincronizarán todas las herramientas locales que existen en el sitio maestro.

Usos alternativos

Si bien hemos cubierto un uso práctico que un administrador del sistema puede tener para este tipo de script, hay muchas otras situaciones en las que este script puede ser útil:

  • Se usa para actualizar las utilidades de Sysinternals y Nirsoft en las máquinas locales (las URL se incluyen en el script).
  • Utilícelo en un sistema de escritorio para mantener un conjunto de documentos sincronizados con una copia maestra.

La secuencia de comandos admite tanto una codificación de una URL como una fuente desde la línea de comandos (es decir, UpdateFromWeb https://source.site.com/Stuff.zip), así que use su imaginación.

La secuencia de comandos

@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

Campo de golf

Descargar UpdateFromWeb Script desde SysadminGeek.com

Descargar WGet

Recomendado: