ウェブページのスケジュール
-
05-07-2019 - |
質問
特定の時間、通常は1晩に実行されるように、いくつかの異なるサイトのいくつかの異なるページをスケジュールする必要があります。これを行うソフトウェアはありますか?ページを呼び出してから応答を記録し、呼び出されたページが正常に実行されたかどうかを記録するといいでしょう。私は別のボックスでHelmを使用していて、素晴らしいWebスケジューラモジュールがありましたが、Helmはこのマシンのオプションではありません。これはWindow Server 2008ボックスです。
解決
VBSファイルを呼び出すbatファイルを呼び出す標準のスケジュールタスクを使用します。私はそれがこれまでで最もエレガントなソリューションではないことを知っていますが、一貫して機能します。
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ファイル内のコードは、ほぼ確実にオーバーキルとアンダーライティングの両方ですが、それでも機能します。
他のヒント
wget.exe とタスクスケジューラ?
上の例のコードには、Webサイトの読み込み中にタスクがアクティブになるという問題があります。 Webサイトの読み込みは2分ですが、タスクは既に1秒で完了しているため、5分ごとに実行すると問題が発生します。 Webサイトが10分読み込まれ、タスクが既に1秒で完了している場合、Webサイトの読み込み時間を待機させたいときに、再び実行されます。
だから私がやったことは次のとおりです(このスクリプトはWebサイトがロードされている限りタスクを忙しくし続けます):
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
同じボックスからスケジュールする必要がない場合は、 Zohoのsite24x7 をご覧ください。
最初はWebサイトを監視するように設計されていますが、予想される回答を記録して比較するオプションがあり、外部サイトのセキュリティを強化して目的に使用できます。ただし、いくつかのURLを除いて無料ではありません。
これらは他の同様のプロバイダーですが、前回このトピックでWebを検索したときにかなり良いように見えました。
最終的にこのスクリプトとタスクスケジューラを使用しましたが、シンプルでうまく機能します。
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 を使用しています。非常に効果的で信頼性が高く、苦情はありません。