我有一个WordPress自我托管的博客,直到上周。更新WordPress后,现在该网站工作正常。但我想在接下来的几天里经常检查一下。是否可以编写一个程序来执行此操作以便我可以安排它?
请提出一些建议。我认为Python是该程序的语言,但我对任何语言都持开放态度。
答案 0 :(得分:4)
您可以使用简单的HTTPConnection测试网站是启动还是关闭,发送“OPTIONS *”请求,如果答案是“200 OK”,您的网站已启动,否则请检查http错误码。
import httplib
connection = httplib.HTTPConnection(your_host, port_probably_80)
connection.request("OPTIONS", "*")
response = connection.getresponse()
if response.status != httplib.OK or response.reason != "OK":
print "Down"
else:
print "Up :)"
答案 1 :(得分:1)
执行HTTP查询并查看结果是否为200 OK。您可以使用PycURL
轻松完成此操作文档中的示例:
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, "http://example.com")
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.perform()
print c.getinfo(pycurl.HTTP_CODE)
答案 2 :(得分:0)
最近我浏览了以下博客。提出一些好的想法来解决问题。
http://blogs.msdn.com/b/vijay/archive/2009/04/23/how-to-check-programmatically-if-a-website-is-running.aspx
答案 3 :(得分:0)
如果您想从本地计算机上检查并且安装了xampp或类似的东西,那么我能想到的第一件事就是简单的解决方案。 你只需要编写php脚本,它将通过php fopen连接到你的网站并阅读一些内容。如果您将获得内容,则表示您的网站已启用。 只写出类似的东西:
// Website url to open
$websiteUrl = 'http://website.com/is_up;
$handle = fopen($websiteUrl, "r");
答案 4 :(得分:0)
你的程序应该向网站发送一个get请求,接收html(验证你得到“200 OK”),然后比较字符串的开头和你应该知道它的内容(比较所有内容,直到第一个依赖的东西)关于内容)。如果比较失败,那么您应该怀疑您的网站可能已关闭,并自行检查。
答案 5 :(得分:0)
这最适合一个小脚本,甚至不需要python:
while curl -q http://yoursite | grep -q some_string; do sleep 120; done; date; echo Site offline
其中some_string是一个只存在的字符串,当你的网站工作正常时(即数据库中的一些内容,如果a不存在,php)不工作或b)数据库连接死亡或c)网站完全离线。
答案 6 :(得分:0)
下面的bash脚本可能对这里结束搜索的人有所帮助。
注意,fakePhrase用于检测ISP"搜索助手"广告软件HTTP响应。
#!/bin/bash
fakePhrase="verizon"
siteList=(
'http://google.com'
'https://google.com'
'http://wikipedia.org'
'https://wikipedia.org'
'http://cantgettherefromhere'
'http://searchassist.verizon.com'
)
exitStatus=0
function isUp {
http=`curl -sL -w "%{http_code}" "$1" -o temp_isUp`
fakeResponse=`cat temp_isUp | grep $fakePhrase`
if [ -n "$fakeResponse" ]; then
http=$fakePhrase
fi
case $http in
[2]*)
;;
[3]*)
echo 'Redirect'
;;
[4]*)
exitStatus=4
echo "$1 is DENIED with ${http}"
;;
[5]*)
exitStatus=5
echo "$1 is ERROR with ${http}"
;;
*)
exitStatus=6
echo "$1 is NO RESPONSE with ${http}"
;;
esac
}
for var in "${siteList[@]}"
do
isUp $var
done
if [ "$exitStatus" -eq "0" ]; then
echo 'All up'
fi
rm temp_isUp
exit $exitStatus