3Sep
Todo administrador de servidor possui um conjunto de programas de utilidade que eles gostam de usar. Normalmente, essas ferramentas são mantidas em cada máquina para garantir a disponibilidade e podem vir de uma variedade de fontes como o Sysinternals e o Nirsoft.
Para manter essas ferramentas atualizadas para as versões mais recentes, a atualização manual pode ser bastante tediosa e demorada, especialmente quando há vários servidores na mixagem. Então, temos uma solução para você: uma solução simples de configurar onde você mantém um único conjunto de ferramentas e todas as suas máquinas sincronizam as versões de suas ferramentas para esse local.
Por exemplo, suponha que você mantenha sistemas em 3 redes separadas e gostaria de ter o mesmo conjunto de 10 ferramentas disponíveis em todas essas máquinas para scripts e manutenção. Você teria uma pasta mestre de ferramentas( disponível através de um site) onde você mantém as versões de lançamento que deseja distribuir para todos os seus sistemas. Todos os seus outros sistemas, em seguida, "telefone para casa" para esta pasta mestre e baixe a respectiva versão localmente. Este processo fornece uma solução automatizada para garantir sempre que suas versões de utilidade sejam consistentes em todos os seus sistemas.
Configurando o ambiente
O ambiente para isso é bastante fácil de configurar e, uma vez feito, é verdadeiramente uma solução "defini-lo e esquecer".
- Crie uma pasta dentro de um site que você tenha acesso ao servidor como a pasta mestre( ou seja, o ToolsFolder).
- Carrega todas as suas utilidades comuns para esta pasta.
- Nos servidores que deseja sincronizar com o site mestre, coloque o script abaixo na pasta local que contém as ferramentas( e WGet se você não tiver já).
- Atualize o URL para sua pasta mestre( ou seja, http: //my.site.com/ ToolsFolder).
- Programe o script para executar periodicamente e todas as ferramentas locais que existem no site mestre serão sincronizadas.
Usos alternativos
Embora tenhamos coberto um uso prático, um administrador do sistema pode ter para esse tipo de script, existem muitas outras situações em que esse script pode ser útil:
- Use para atualizar os utilitários Sysinternals e Nirsoft em máquinas locais( os URLs estão incluídosno script).
- Use em um sistema desktop para manter um conjunto de documentos sincronizados com uma cópia mestre.
O script suporta codificação rígida de um URL, além de fornecer um da linha de comando( ou seja, UpdateFromWeb http: //source.site.com/ Stuff.zip), então use sua imaginação.
O Script
@ECHO OFF TITLE Atualização da Web ECHO Update da Web ECHO Escrito por: Jason Faulkner ECHO SysadminGeek.com ECHO.ECO.SETLOCAL EnableExtensions REM Coloque este script na pasta que contém os utilitários para atualizar. REM Requer WGet para estar na mesma pasta que este script ou em um local definido na variável PATH.REM URL para procurar atualizações no caso de nenhum ser especificado como um parâmetro. REM URL de interesse --- REM Sysinternals: ferramentas http: //live.sysinternals.com/ REM NirSoft: painel http: //www.nirsoft.net/ SET URL = http: //my.site.com/ ToolsFolder REM Se um parâmetro for especificado, use isso como URL.SE NÃO{ % 1} =={ } SET URL =% ~ 1 REM Configure esse valor para 1 para reiniciar tarefas que foram interrompidas durante o processo de atualização. SET RestartKilledTasks = 0 Diretório detectado pelo ECHO:% ~ dp0% ~ d0 CD% ~ p0 ECHO.ECO.SET NewFile =. NEW FOR / F %% A IN( 'DIR / B') DO WGet --output-document = "%% A% NewFile%" "% URL% / %% A" REM Excluir vazio( não encontrado)) arquivos. FORFILES / P./ C "CMD / C IF @ fsize == 0 DEL / F / Q @path" SET StartWhenFinished = "% TEMP% StartWhenFinished.tmp.txt" ECHO; Ferramentas terminadas & gt;% StartWhenFinished% FOR / F %% A IN( 'DIR / B') DO( SE EXISTE "%% A% NewFile%"( ECHO Encontrada nova versão de: %% A REM Se o arquivo estiver em execução, mate-o para que elepode ser substituído. FOR / F %% B IN( 'TASKLIST') DO( IF / I [%% A] == [%% B]( ECHO %% B está atualmente em execução, processo de morte. ECHO %% A & gt; & gt;% StartWhenFinished% TASKKILL / IM "%% B" / T / F)) REM Substitua pela nova versão. DEL / F / Q "%% A" RENAME "%% A% NewFile%" "%% A")) Se{ % RestartKilledTasks%} =={ 1}( ECHO. ECHO Retomando tarefas mortas FOR / F" usebackq skip = 1 "%% A IN( % StartWhenFinished%) DO( ECHO Starting %% A START" Reiniciar%% A "" %% A ")) SE EXISTE"% StartWhenFinished% "DEL"% StartWhenFinished% "ENDLOCALLinks
Baixar UpdateFromWeb Script de SysadminGeek.com
Baixar WGet