昨晚公司开颁奖晚会(日子选的很别扭),偶们改的状态会实时显示在状态墙上.彩排完毕超市购物间隙跟强哥想到一个恶搞的方法–刷屏.具体来说就是用偶们几个人滴号不停的改状态刷状态墙.于是立刻找到一个网吧实施罪恶的行为.

我写脚本,强哥写用来刷屏的状态,额,用shell改状态就两句话,不过放在公司的机器上,没办法,还得现查curl,最终在入场之前还是把脚本写完了…

#!/bin/sh
 
#所有的状态放到status.txt中,然后用这个函数循环取
get_status()
{
    #取第一行状态
    head -1 status.txt
    #第一行移动到最后一行
    sed -i -e '1{h;d};$G' status.txt
}
 
#该状态的函数,两个参数:用户名,密码
send_status()
{
    user=$1
    pass=$2
    word="`get_status`"
    word="`perl -MURI::Escape -e "print uri_escape('${word}');"`"
    curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -D /tmp/cookies -d "email=${user}&password=${pass}" http://login.renren.com/login.do
    curl -e "http://renren.com/Home.do" -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -b /tmp/cookies -d "c=${word}&raw=${word}" http://status.renren.com/doing/update.do 
}
 
#main
send_all()
{
    while [ "s"="s" ];do
        #on_off.txt是个开关文件,如果存在时才会发状态
        if [ -e "/tmp/on_off.txt" ];then
            #用户名和密码都存在user.txt里
            #跟状态一样也是轮着来
            u_p="`head -1 user.txt`"
            sed -i -e '1{h;d};$G' user.txt
            user="`echo "${u_p}" | cut -d: -f 1`"
            password="`echo "${u_p}" | cut -d: -f 2`"
            #改状态了
            send_status $user $password
        fi
        #五秒钟发一次
        sleep 5
    done
}
 
send_all
Copy Code 

脚本写完了,但是怎么启动呢,我的手机上有个putty,但是登server太慢了,于是又写了一个开关的php

<?php
if(file_exists('/tmp/on_off.txt'))
{
    unlink('/tmp/on_off.txt');
}
else
{   
    $fp = fopen('/tmp/on_off.txt', 'w');
    fwrite($fp,'ooxx');
    fclose($fp);
}
?>
Copy Code 

这样就比较方便了,shell在server上运行,只要用手机浏览器访问这个开关的php就可以了~

后来使用中遇到点问题,手机浏览器的缓存实在太强了!!!!!!