【阿里巴巴搜索技术研发中心QA ----专注,专业,专心】【纪念曾经的ASC-QA团队 】【领域:Linux后台测试,搜素引擎应用测试,后台测试的自动化研究 】
【技能:c++ bash ruby】【工作定位:培训师 技术leader】
使用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: