获取服务器状态并发送到twitter

前两天,空间提供商kilu的服务器似乎有些问题,总是出现下线或者拒绝服务器的状态,于是想写一个脚本来自动获得服务器状态并公布到twitter上。在kilu的论坛上发现了一个帖子,并告诉了服务器状态的网址: http://subdomain.kilu.info/,但该地址获得的是所有服务器的状态,于是开了firebug,看了一下,原来后台向 http://m2000.onpw.de/kilu/server_check.php 发送的请求,格式如下:

http://m2000.onpw.de/kilu/server_check.php?srv=Server_Id&port=Port&tm=Num

Server_Id为你空间所在的服务器的id,kilu的服务器都是www1,www2,www3什么的,在后台管理可以看的到的(比如我的是12),port为要检查的端口号,tm这个可以不要的(应该是tm,昨天看的,没什么必要,所以就没记住)

于是写了个脚本来获得服务器信息:

       #!/bin/sh
Time=`curl "http://m2000.onpw.de/kilu/server_check.php?srv=12&port=80" | sed -e 's/< [^<]*>//g'`
Result=`echo $Time | grep "sec"`
WEB_ERROR=""
if [ -z "$Result" ] ; then
    WEB_ERROR="web failed:$Time"
    twitter.sh "通知:http://zeze0556.tk 可能下线,原因:$Time,造成该原因可能由于网络故障或维护,我们将在半个小时检测一次,并及时通知检测结果,本通知由脚本自动发送"
    echo "$WEB_ERROR" > web_error
else
    if [ -e web_error ] ; then
        rm -drf web_error
        twitter.sh "通知:http://zeze0556.tk 服务器恢复正常,本通知由脚本自动发送"
    else
        echo "success=$Time"
    fi
fi

Time=`curl "http://m2000.onpw.de/kilu/server_check.php?srv=12&port=3306" | sed -e 's/< [^<]*>//g'`
Result=`echo $Time | grep "sec"`
SQL_ERROR=""
if [ -z "$Result" ] ; then
    SQL_ERROR="SQL failed:$Time"
    twitter.sh "通知:http://zeze0556.tk 数据库异常变动,原因:$Time,造成该原因可能由于网络故障或维护,我们将在半个小时检测一次,并及时通知检测结果,本消息由脚本自动发送"
    echo "$SQL_ERROR" > sql_error
else
    if [ -e sql_error ] ; then
        rm -drf sql_error
        twitter.sh "通知:http://zeze0556.tk 数据库恢复正常,本通知由脚本自动发送"
    else
        echo "success=$Time"
    fi
fi
       

上述内容中,3306是sql数据库的端口号,之所以检查是因为wordpress需要从数据库中读取内容。

上述内容中,还有一个twitter.sh的脚本,这个脚本是用来将消息发送到twitter上的,网上很多教程关于从linux命令行发送twitter的,由于twitter现在不支持basic 认证了,不过所幸的是,通过GTAP还是可以进行basic认证的,而且更加的安全。于是就有了下面的内容:

继续阅读获取服务器状态并发送到twitter

linux命令:录屏

PS:基本上没有用过wordpress的管理界面写过文章,感觉怪怪的,而服务商kilu又更改了广告形式,让每次都要出来一个大大的图片,极为不爽,且竟然占道,加上需要代理才能访问站点,emacs中还没研究如何来做,只能临时使用下

正文:

linux录屏命令:

#

ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg

把 Linux 桌面录制为视频。

不过我还没测试,等切换到linux下的时候试试,这样就不用安装录屏软件了。

使用cron自动提交svn代码

今天不小心看到磁盘中有一个svn.log的文件,打开一看,里面全是每天晚上自动提交到svn的日志,猛然想起很早之前写了一个自动提交svn的计划任务,自己已经很早就过起了不提交svn的习惯,没想到这个计划任务整整为我默默的服务了两年,从来没有间断,直到上个月我把cygwin的用户名手动改掉为止。
自动提交的代码很简单,需要修改的就是前面的一些定义,路径要用绝对路径。
继续阅读使用cron自动提交svn代码