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

Съдържание:

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

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

Видео: Създайте своя собствена автоматизирана система за актуализиране на файлове
Видео: CS50 2013 - Week 9 - YouTube 2024, Април
Anonim

Всеки сървър администратор има набор от помощни програми, които те обичат да използват. Обикновено тези инструменти се съхраняват на всяка машина, за да се осигури наличност и могат да идват от различни източници като Sysinternals и Nirsoft.

За да запазите тези инструменти актуализирани до най-новите версии, ръчното актуализиране може да бъде доста досадно и отнема много време, особено когато в сместа има няколко сървъра. Така че ние разполагаме с решение за вас: просто решение за създаване, където поддържате един и същ набор от инструменти и всичките ви машини синхронизират версиите на своите инструменти на това място.

Да предположим, например, че поддържате системи на 3 отделни мрежи и искате да разполагате със същия набор от 10 инструмента на разположение за всички тези машини за скриптове и поддръжка. Ще имате основна папка с инструменти (достъпна чрез уеб сайт), в която поддържате версиите, които искате да бъдат разпространени във всичките ви системи. Всичките ви други системи, след това "домашен телефон", в тази главна папка и изтеглете съответната версия на място. Този процес осигурява автоматизирано решение, за да се уверите, че версиите за полезност са съвместими във всичките ви системи.

Настройване на средата

Околната среда за това да работи е доста лесна за настройка и, след като веднъж е направена, е истински решение, да я "забравиш" и да я забравиш.

  1. Създайте папка вътре в уеб сайт, до който имате достъп, към който сървърът ще бъде основната папка (т.е. ToolsFolder).
  2. Качете всичките си общи помощни програми в тази папка.

  3. На сървърите, които искате да синхронизирате с главния сайт, поставете скрипта по-долу в локалната папка, в която се съхраняват инструментите (и WGet, ако още не разполагате с тях).
  4. Актуализирайте URL адреса в основната си папка (т.е. https://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 Script от SysadminGeek.com

Изтегляне на WGet

Препоръчано: