Como relançar um script do powershell se ele morrer?

1

Eu tenho um script powershell Eu quero usar para monitorar o tamanho de um arquivo (em um determinado intervalo) e me enviar um alerta de e-mail se o arquivo atingir um certo tamanho. No entanto, depois de descobrir que o arquivo atingiu esse tamanho, o script do PowerShell é encerrado.

Atualmente, o script opera em um loop for, com a verificação do tamanho do arquivo acontecendo primeiro e, se ele não tiver passado no tamanho máximo, aguardará o intervalo de tempo especificado e verificará o tamanho do arquivo novamente. Mas estou pensando em mudar este loop para um fazer ... while para que ele espere o intervalo de tempo primeiro e, em seguida, verifique o tamanho do arquivo.

Mas o script ainda será encerrado quando o email for enviado.

Existe alguma maneira de garantir que o script seja executado novamente quando ele sair após o envio do email?

Eu leia isso existem processos em sistemas de banco de dados que monitoram outros processos para garantir que estejam em execução e, se não estiverem, o processo de observação reinicia o processo que morreu.

    
por leeand00 16.08.2012 / 17:31

1 resposta

3

Parece que sua função de envio de e-mail está fora do loop e é seguida por uma instrução de saída ou pelo final do script.

Você pode apenas colocar a função de envio de e-mail dentro do loop? Você provavelmente precisará adicionar um contador que estabelecerá uma suspensão baseada no tempo ou na repetição para que ele não receba imediatamente um loop de reenvie e-mails, mas isso não é muito difícil.

Se você fizer isso, o script não sairá do loop: ele será enviado, enviado por e-mail e retornará à verificação do arquivo.

    
por 16.08.2012 / 17:38