【工作经历:阿里巴巴搜索技术研发中心QA ,百度新产品测试部QA】 【领域:测试分析,自动化测试,性能测试,安全测试 】 【个人定位:高级测试工程师+培训师+领域产品专家】

使用screen与expect共享shell

上一篇 / 下一篇  2009-07-02 21:03:26 / 个人分类:原创



上次写完了Linux下共享screen进行协作  后,感觉那样草草总结了,有点不负责任。
就重新利用screen与expect封装了下,把细节全都封装了。

使用前提,本机有screen与expect

用法

A求救于B,A执行screen_share B。然后会提示一条命令语句,同时会把命令发给B用户。
B看到命令,并执行后,两个人就在同一个shell下了。


:<<screen_share_help
share you screen to others, it use screen to share and communicate, a weak is that it's can't allow more than 4 users
screen_share huangysh
screen_share gaoyang huangysh huangyj winniwei
screen_share_help
screen_share()
{
    [[ $# = 0 ]] && echo please input a system user from who you want to communicate && return
    ex sudo chown root:root `which screen`
    ex sudo chmod +s `which screen`
    #ls -l `which screen`
    for u in $*
    do
        for t in  `who |grep $u|awk '{print $2}'`;
        do
            echo `which screen` -rx $USER/$USER |write $u $t ;
        done
    done
    echo Let your friends excute this below
    print `which screen` -rx $USER/$USER

    read -t 5 -p "Any key to enter the screen    "
    export screen_share_users="$*"
    expect -c  '
    set timeout -1
    spawn screen -R $env(USER)
    match_max 100000
    send -- "\r"
    send -- "\r"
    send -- "'$'\cA:''"
    send -- "multiuser on\r"
    send -- "\r"
    send -- "'$'\cA:''"
    send -- "acladd $env(screen_share_users)"
    send -- "\r"
    send -- "\r"
    interact
    '
}


TAG:

 

评分:0

我来说两句

Open Toolbar