Создайте собственную автоматическую систему обновления файлов

Оглавление:

Создайте собственную автоматическую систему обновления файлов
Создайте собственную автоматическую систему обновления файлов

Видео: Создайте собственную автоматическую систему обновления файлов

Видео: Создайте собственную автоматическую систему обновления файлов
Видео: Гайд по блокноту | Трюки и фишки в блокноте - YouTube 2024, Апрель
Anonim

У каждого администратора сервера есть набор служебных программ, которые они предпочитают использовать. Как правило, эти инструменты хранятся на каждой машине для обеспечения доступности и могут поступать из различных источников, таких как Sysinternals и Nirsoft.

Чтобы обновлять эти инструменты до последних версий, ручное обновление может быть довольно утомительным и трудоемким, особенно когда в миксе есть несколько серверов. Таким образом, у нас есть решение для вас: простое решение для настройки, в котором вы поддерживаете один набор инструментов, и все ваши машины синхронизируют версии своих инструментов с этим местоположением.

Например, предположим, что вы поддерживаете системы в 3 отдельных сетях и хотите иметь один и тот же набор из 10 инструментов на всех этих машинах для сценариев и обслуживания. У вас будет основная папка инструментов (доступная через веб-сайт), где вы будете поддерживать версии выпуска, которые вы хотите распространять во всех своих системах. Затем все ваши другие системы, «домой», в эту главную папку и загружайте соответствующую версию локально. Этот процесс обеспечивает автоматическое решение для постоянного согласования версий вашей утилиты во всех ваших системах.

Настройка среды

Среда для этого очень проста в настройке и, как только это сделано, действительно является «решением проблемы» и «забыть».

  1. Создайте папку внутри веб-сайта, к которому у вас есть доступ, к которому будет принадлежать сервер в качестве основной папки (т. Е. ToolsFolder).
  2. Загрузите все свои общие утилиты в эту папку.

  3. На серверах, которые вы хотите синхронизировать с основным сайтом, поместите сценарий ниже в локальную папку, в которой хранятся инструменты (и WGet, если у вас ее еще нет).
  4. Обновите URL-адрес вашей основной папки (т. Е. Http://my.site.com/ToolsFolder).

  5. Запланируйте запуск сценария периодически, и все локальные инструменты, которые существуют на главном сайте, будут синхронизированы.

Альтернативное использование

Хотя мы рассмотрели практическое использование, которое администратор системы может иметь для этого типа сценария, есть много других ситуаций, когда этот скрипт может пригодиться:

  • Используйте для обновления служебных программ Sysinternals и Nirsoft на локальных компьютерах (URL-адреса включены в скрипт).

  • Используйте на настольной системе, чтобы сохранить набор документов, синхронизированных с главной копией.

Скрипт поддерживает как жесткую кодировку URL-адреса, так и поставку из командной строки (т. Е. UpdateFromWeb https://source.site.com/Stuff.zip), поэтому используйте свое воображение.

Сценарий

@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

связи

Загрузите скрипт UpdateFromWeb с сайта SysadminGeek.com

Загрузить WGet

Рекомендуемые: