Створіть власну автоматизовану систему оновлення файлів
Кожен адміністратор сервера має набір утилітних програм, які вони хотіли б використовувати. Зазвичай ці інструменти зберігаються на кожній машині для забезпечення доступності і можуть надходити з різних джерел, таких як Sysinternals і Nirsoft.
Щоб ці інструменти були оновлені до останніх версій, оновлення вручну можуть бути досить трудомісткими та забирати багато часу, особливо коли в суміші є кілька серверів. Таким чином, у нас є рішення для вас: просте рішення для налаштування, де ви підтримуєте один набір інструментів, і всі ваші машини синхронізують версії своїх інструментів з цим місцем розташування.
Наприклад, припустимо, що ви підтримуєте системи на 3 окремих мережах і хочете мати один і той же набір з 10 інструментів, доступних на всіх цих машинах для сценаріїв і технічного обслуговування. У вас буде головна папка інструментів (доступна через веб-сайт), де ви зберігаєте версії випуску, які потрібно розповсюдити на всі ваші системи. Всі ваші інші системи потім “телефонують додому” до цієї головної папки та завантажують відповідну версію локально. Цей процес забезпечує автоматизоване рішення, щоб переконатися, що версії вашої утиліти узгоджуються у всіх ваших системах.
Налаштування середовища
Навколишнє середовище для цього досить легко налаштувати і, коли це зроблено, це дійсно рішення «встановити його і забути».
- Створіть папку всередині веб-сайту, до якого ви маєте доступ, на якому буде сервер як головна папка (тобто папка інструментів).
- Завантажте всі загальні утиліти до цієї папки.
- На серверах, які потрібно синхронізувати з головним сайтом, помістіть скрипт нижче у локальну папку, в якій зберігаються інструменти (і WGet, якщо у вас її немає).
- Оновіть URL-адресу до своєї головної папки (наприклад, http://my.site.com/ToolsFolder).
- Заплануйте періодичний запуск сценарію, і всі локальні інструменти, які існують на головному сайті, будуть синхронізовані.
Альтернативне використання
Хоча ми розглянули практичне використання системного адміністратора для цього типу сценарію, існує багато інших ситуацій, коли цей сценарій може стати в нагоді:
- Використовується для оновлення служб Sysinternals та Nirsoft на локальних машинах (URL-адреси включені до сценарію).
- Використовуйте на настільній системі для синхронізації набору документів з головною копією.
Сценарій підтримує як жорстке кодування URL, так і постачання з командного рядка (тобто UpdateFromWeb http://source.site.com/Stuff.zip), тому використовуйте свою уяву.
Сценарій
@ECHO OFF TITLE Оновлення з веб-ECHO Оновлення з веб-ЕХО Автор: Джейсон Фолкнер ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Помістіть цей сценарій у папку, яка містить утиліти для оновлення. REM Потрібно, щоб WGet знаходився в тій же папці, що й цей сценарій, або в місці, встановленому в змінної PATH. URL-адреса REM для пошуку оновлень у тому випадку, якщо жоден не вказано як параметр. 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') ДО 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 (IF 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 від SysadminGeek.com
Завантажити WGet