Solução em lotes, anexada ao arquivo de log. Altere >>
para >
para sobrescrever:
@echo off
set logfile=.\curl.log
echo [ %date% %time% ]>>%logfile%
curl -s -k http://freedns.afraid.org/dynamic/update.php?xdfSDASDQW232FFD>>%logfile%
Estou tendo problemas estranhos em que meu IP externo é alterado MUITO vezes, como em cada 2, 3 minutos.
Eu tenho um serviço de DNS dinâmico no lugar que eu atualizo via agendador de tarefas com o curl chamado em um arquivo de lote.
Estou no processo de depuração e, para isso, preciso registrar (anexar) a data e a hora e cada resposta de CURL em um arquivo.
Eu sou capaz de fazer eco a um arquivo, mas não tenho ideia de como acrescentar data / hora e enrolar a resposta.
O ambiente é ws2012.
Obrigado antecipadamente! Aqui está o trecho que eu tenho no momento
curl -k http://freedns.afraid.org/dynamic/update.php?xdfSDASDQW232FFD
ECHO I ran! I really did! >c:\TestBat.log
Eu recomendo ignorar o curl e usar o Powershell, já que essa é uma tecnologia nativa do WS e pode ser usada para enviar um HTTP POST também. Aqui está um simples liner que registra seu IP externo e a hora atual no arquivo C: \ temp \ debuglog.txt:
$response = Invoke-WebRequest -UseBasicParsing -Uri http://icanhazip.com -Method get
"{0};{1}" -f $response.content.trim(), (get-date -format u) | out-file -filepath 'C:\temp\debuglog.txt' -append
Coloque isso em um arquivo que termine em .ps1 e execute-o pelo agendador de tarefas:
Program: powershell
Arguments: -executionpolicy bypass C:\temp\debugscript.ps1
Tags windows logging curl ip batch-file