Мне нужно запланировать несколько разных страниц на нескольких сайтах, которые будут выполняться в определенное время, обычно один раз в сутки. Есть ли там программное обеспечение для этого? было бы неплохо, если бы он назвал страницу, а затем записал ответ и был ли успешный запуск вызываемой страницы или нет. Я использовал Helm в другой коробке, и у него был хороший модуль Web Scheduler, но Helm не является вариантом для этой машины. Это окно Window Server 2008.расписание веб-страницы
ответ
Мы используем стандартные запланированные задачи, которые вызывают файл bat, который вызывает файл VBS. Я знаю, что это не самое изящное решение когда-либо, но оно последовательно работает.
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
код в файле VBS почти бесспорно, и избыточна и нижеизложенное, но функциональный ни-менее.
В итоге я сделал почти то же самое - спасибо за помощь! – Slee 2008-11-18 15:58:11
Как насчет wget.exe и планировщик задач?
Если нет необходимости планировать их из одной коробки, посмотрите на Zoho's site24x7.
Первоначально он предназначен для мониторинга веб-сайтов, но у него есть возможность записывать ожидаемые ответы и сравнивать их, чтобы вы могли использовать его для своей цели с добавленной безопасностью внешнего сайта. Это не бесплатно, за исключением нескольких URL-адресов.
Это другие аналогичные провайдеры, но они выглядели неплохо в прошлый раз, когда я искал в Интернете эту тему.
Я закончил с использованием этого сценария и планировщик задач, простой и прекрасно работает:
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
Тогда я просто называю его с URL я хочу запустить в качестве аргумента:
Похожие (хотя, возможно, более мощный) netcat и его windows port
fyi - wget - стандартная лицензия GNU, поэтому я не уверен, что она пригодна для большинства коммерческих/проприетарных систем.
Я использую http://scheduler.codeeffects.com. Очень эффективный и надежный, без жалоб.
Код, приведенный в верхнем примере, содержит некоторые проблемы с активностью задачи во время загрузки веб-сайта. На сайте загружается 2 минуты, но задача уже выполнена за 1 секунду, что приводит к возникновению проблемы при ее выполнении каждые 5 минут. Если веб-сайт загружает 10 минут, и задача уже выполнена за 1 секунду, повторите операцию, пока я хочу, чтобы она дождалась времени загрузки веб-сайта.
Так что я сделал следующий (этот сценарий будет держать задачу занят, пока сайт загружается):
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
Как указаны в первом ответе - Wget соответствует вашему заявленному вопросу совершенно , Просто назначьте правильную команду wget, и она вызовет веб-страницу и сохранит ответ HTTP в файл. Если вам нужно что-то еще - добавьте больше деталей на вопрос ... – user8032 2008-11-03 02:12:49