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

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

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

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

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

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

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

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

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

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

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

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

    Сценарий

    @ECHO OFF TITLE Обновление из Интернета ECHO Обновление из Интернета ECHO Автор: Джейсон Фолкнер, ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Поместите этот скрипт в папку, которая содержит утилиты для обновления. REM Требует, чтобы WGet находился в той же папке, что и этот скрипт, или в местоположении, заданном в переменной PATH. REM URL для поиска обновлений в случае, если ни один не указан в качестве параметра. Интересующие URL-адреса REM --- REM Sysinternals: http://live.sysinternals.com/tools REM NirSoft: http://www.nirsoft.net/panel SET URL = http: //my.site.com/ToolsFolder REM Если указан параметр, используйте его в качестве URL. ЕСЛИ НЕ % 1 ==  SET URL =% ~ 1 REM Установите это значение равным 1, чтобы перезапустить задачи, которые были остановлены во время процесса обновления. SET RestartKilledTasks = 0 ECHO Обнаруженный каталог:% ~ dp0% ~ d0 CD% ~ p0 ECHO. ECHO. SET NewFile = .NEW FOR / F %% A IN ('DIR / B') DO WGet --output-document = "%% A% NewFile%" "% URL% / %% A" REM Удалить пустое (не найдено) ) файлы. FORFILES / P. / C "CMD / C IF @ fsize == 0 DEL / F / Q @path" SET StartWhenFinished = "% TEMP% StartWhenFinished.tmp.txt" ECHO; Завершенные инструменты>% StartWhenFinished% FOR / F %% A IN (' DIR / B ') DO (ЕСЛИ EXIST "%% A% NewFile%" (ECHO Найдена новая версия: %% A REM. Если файл запущен, уничтожьте его, чтобы его можно было заменить. FOR / F %% B IN ( 'TASKLIST') DO (IF / I [%% A] == [%% B] (ECHO %% B в данный момент выполняется, процесс уничтожения. ECHO %% A >>% StartWhenFinished% TASKKILL / IM "%% B" / T / F)) REM Заменить на новую версию. DEL / F / Q "%% A" RENAME "%% A% NewFile%" "%% A")) IF % RestartKilledTasks% == 1 (ECHO. ECHO Возобновление убитых задач FOR / F "usebackq skip = 1" %% A IN (% StartWhenFinished%) DO (ECHO Запуск %% A START "Перезапуск %% A" "%% A")) IF EXIST "% StartWhenFinished% "DEL"% StartWhenFinished% "ENDLOCAL 

    связи

    Скачать UpdateFromWeb Script с SysadminGeek.com

    Скачать WGet