R910 风扇控制

上周公司这边弄了台2手的R910服务器,一启动那个噪音实在受不了。即使到最后,默认的噪音也还是受不了。

最后只能尝试将其风扇改为手动模式。

需要注意的是:

  1. iDRAC的网口是第一个网口,我习惯哪个近用哪个,所以用了第4个网口作为网络连接,最后又接了根网线到第一个网口上
  2. iDARC如果设置为DHCP自动获取的话,在网口1上会被分配两个IP地址,一个是iDRAC的地址,一个是系统的地址,控制的时候,需要使用iDARC的地址,不过,这两个地址在同一个网段下,可以互相通讯的。
  3. iDARC通了后,可以通过IP访问web页面,还有一堆内容可以配置或者查看的。
  4. 上面的是自动控制的前提条件,我是通过判断CPU内核的平均温度来调节风扇的。如果高于50度,则恢复成自动的,如果低于50度,则变为手动的。通过cron 5分钟检测一次。

脚本内容:

#!/bin/bash
set -x
CUR_CPU_TEMP=`sensors | grep "Core" | awk -F '+' '{print $2}' | awk -F '°C' '{sum +=$1} END {print sum/NR}'`

CMD="ipmitool -I lanplus -H 192.168.2.166 -U root -P calvin raw "

echo `date` "CUR_CPU_TEMP="$CUR_CPU_TEMP

if [ ${CUR_CPU_TEMP%.*} -gt 50 ]
  then
    echo "--> enable dynamic fan control"
    $CMD 0x30 0x30 0x01 0x01
  else
    echo "--> disable dynamic fan control"
    $CMD 0x30 0x30 0x01 0x00
    echo "--> set static fan speed 30%"
    $CMD 0x30 0x30 0x02 0xff 0x1e
fi

获取服务器状态并发送到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代码