Página principal » cómo » Construye tu propio sistema automatizado de actualización de archivos

    Construye tu propio sistema automatizado de actualización de archivos

    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. Así que 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 "llame a casa" a esta carpeta maestra y descargue 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, es realmente una solución "configúrelo y olvídelo".

    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 la secuencia de comandos a continuación en la carpeta local que contiene las herramientas (y WGet si todavía no lo tiene).
    4. Actualice la URL a su carpeta maestra (es decir, http://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 http://source.site.com/Stuff.zip), así que use su imaginación.

    La secuencia de comandos

    @ECHO OFF TITLE Actualización de la Web ECHO Actualización de la Web ECHO Escrito por: Jason Faulkner ECHO SysadminGeek.com ECHO. ECO. SETLOCAL EnableExtensions REM Coloque este script en la carpeta que contiene las utilidades para actualizar. REM requiere que WGet esté en la misma carpeta que esta secuencia de comandos o en una ubicación establecida en la variable PATH. URL de REM para buscar actualizaciones en el caso de que ninguna se especifique como un parámetro. URL de REM de interés --- REM Sysinternals: http://live.sysinternals.com/tools REM NirSoft: http://www.nirsoft.net/panel SET URL = http: //my.site.com/ToolsFolder REM Si se especifica un parámetro, utilícelo como la URL. IF NOT % 1 ==  SET URL =% ~ 1 REM Establezca este valor en 1 para reiniciar las tareas que se detuvieron durante el proceso de actualización. SET RestartKilledTasks = 0 ECHO Directorio detectado:% ~ dp0% ~ d0 CD% ~ p0 ECHO. ECO. SET NewFile = .NEW FOR / F %% A IN ('DIR / B') DO WGet --output-document = "%% A% NewFile%" "% URL% / %% A" REM Borrar vacío (no encontrado ) archivos. FORFILES / P. / C "CMD / C IF @ fsize == 0 DEL / F / Q @path" SET StartWhenFinished = "% TEMP% StartWhenFinished.tmp.txt" ECHO; Herramientas terminadas>% StartWhenFinished% FOR / F %% A IN (' DIR / B ') HACER (SI EXISTE "%% A% NewFile%" (ECHO Se encontró una nueva versión de: %% A REM Si el archivo se está ejecutando, elimínelo para poder reemplazarlo. FOR / F %% B IN ( 'TASKLIST') DO (IF / I [%% A] == [%% B] (ECHO %% B se está ejecutando actualmente, proceso de eliminación. ECHO %% A >>% StartWhenFinished% TASKKILL / IM "%% B" / T / F)) REM Reemplace con la nueva versión. DEL / F / Q "%% A" RENAME "%% A% NewFile%" "%% A")) IF % RestartKilledTasks% == 1 (ECHO. ECHO Reanudando tareas eliminadas FOR / F "usebackq skip = 1" %% A IN (% StartWhenFinished%) DO (ECHO Starting %% A START "Reinicio de %% A" "%% A")) IF EXIST "% StartWhenFinished% "DEL"% StartWhenFinished% "ENDLOCAL 

    Campo de golf

    Descargar UpdateFromWeb Script desde SysadminGeek.com

    Descargar WGet