Pregunta

Necesito programar varias páginas diferentes en varios sitios diferentes para que se ejecuten a ciertas horas, generalmente una vez por noche. ¿Hay algún software por ahí para hacer esto? sería bueno si llamara a la página y luego registrara la respuesta y si la página llamada se ejecutó con éxito o no. Estaba usando Helm en una caja diferente y tenía un buen módulo de Programador Web, pero Helm no es una opción para esta máquina. Este es un cuadro de Windows Server 2008.

¿Fue útil?

Solución

Usamos tareas programadas estándar que llaman a un archivo bat que llama a un archivo VBS. Sé que no es la solución más elegante de la historia, pero siempre funciona.

BAT:

webrun.vbs http://website.com/page.aspx

VBS:

dim URL, oArgs  

Set oArgs = WScript.Arguments  

    if oArgs.Count = 0 then  
    msgbox("Error: Must supply URL")  
    wscript.quit 1  
    end if  

URL = oArgs(0)  

 on error resume next  
Set objXML = CreateObject("MSXML2.ServerXMLHTTP")  

    if err then  
    msgbox("Error: " & err.description)  
    wscript.quit 1  
    end if  

' Call the remote machine the request  
    objXML.open "GET", URL, False  

    objXML.send()  

' return the response  
    'msgbox objXML.responSetext  

' clean up  
    Set objXML = Nothing  

El código en el archivo VBS es casi seguro tanto exagerado como suscrito, pero funcional, sin embargo.

Otros consejos

¿Qué te parece wget.exe y el programador de tareas?

El código dado en el ejemplo superior tiene algunos problemas con la tarea activa durante la carga del sitio web. El sitio web se está cargando 2 minutos, pero la tarea ya se realizó en 1 segundo, lo que genera un problema cuando se ejecuta cada 5 minutos. Si el sitio web se carga 10 minutos y la tarea ya está terminada en 1 segundo, se ejecutará nuevamente mientras yo quiero que espere el tiempo de carga del sitio web.

Entonces, lo que he hecho es lo siguiente (esta secuencia de comandos mantendrá la tarea ocupada mientras el sitio web se esté cargando):

dim URL, oArgs, objXML
Set oArgs = WScript.Arguments
URL = oArgs(0)

on error resume next

Set objXML = CreateObject("Microsoft.XMLDOM")
objXML.async = "false"
objXML.load(URL)
Set objXML = Nothing

Si no es un requisito programarlas desde el mismo cuadro, consulte site24x7 de Zoho .

Inicialmente está diseñado para monitorear sitios web, pero tiene la opción de grabar las respuestas esperadas y compararlas para que pueda usarlas para su propósito con la seguridad adicional de un sitio externo. Sin embargo, no es gratis, excepto por algunas direcciones URL.

Son otros proveedores similares, pero se vieron bastante bien la última vez que busqué en la web sobre este tema.

Terminé usando este script y el Programador de tareas, simple y funciona muy bien:

Call LogEntry()
Sub LogEntry()

'Force the script to finish on an error.
On Error Resume Next

'Declare variables
Dim objRequest
Dim URLs
URLs = Wscript.Arguments(0)
Set objRequest = CreateObject("Microsoft.XMLHTTP")

'Open the HTTP request and pass the URL to the objRequest object
objRequest.open "POST", URLs, false

'Send the HTML Request
objRequest.Send

Set objRequest = Nothing
WScript.Quit

End Sub

Luego lo llamo con la URL que quiero que se ejecute como argumento:

Similar (aunque posiblemente más potente) es netcat y su puerto de windows

fyi - wget es una licencia estándar de GNU, por lo que no estoy seguro de que sea utilizable para la mayoría de los sistemas comerciales / propietarios.

Utilizo http://scheduler.codeeffects.com . Muy efectivo y confiable, no hay quejas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top