|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!比来经由过程exploringexpect书本,复杂学了下expect剧本言语,这个剧本言语是tcl言语的扩大,用来办理一些工具没法主动交互的成绩,如ssh登录时,没法在下令就指定暗码等。上面是使用expect来完成办理多台办事器的复杂例子:
[size=1em][size=1em]1
[size=1em]2
[size=1em]3
[size=1em]4
[size=1em]5
[size=1em]6
[size=1em]7
[size=1em]8
[size=1em]9
[size=1em]10
[size=1em]11
[size=1em]12
[size=1em]13
[size=1em]14
[size=1em]15
[size=1em]16
[size=1em]17
[size=1em]18
[size=1em]19
[size=1em]20
[size=1em]21
[size=1em]22
[size=1em]23
[size=1em]24
[size=1em]25
[size=1em]26
[size=1em]27
[size=1em]28
[size=1em]29
[size=1em]30
[size=1em]31
[size=1em]32
[size=1em][size=1em]#!/usr/bin/expect
[size=1em]#purpose:autoruncommandonmultipleservers
[size=1em]#howto:mms<user><cmd>
[size=1em]#writebyzhumaohai.
[size=1em]#blog:http://www.centoscn.com/
[size=1em]
[size=1em]if{$argc<2}{
[size=1em]puts"usage:mms<user><cmd>"
[size=1em]exit1
[size=1em]}
[size=1em]
[size=1em]#setservers
[size=1em]setSERVERS{"192.168.0.100""192.168.0.101""192.168.0.102"}
[size=1em]
[size=1em]#setpassword
[size=1em]setPASSWORDS(user1)"passwd1"
[size=1em]setPASSWORDS(user2)"passwd2"
[size=1em]
[size=1em]#getvirables
[size=1em]setUSER[lindex$argv0]
[size=1em]setCMD[lrange$argv1end]
[size=1em]
[size=1em]setpasswd$PASSWORDS($USER)
[size=1em]
[size=1em]foreachx$SERVERS{
[size=1em]evalspawnssh-l$USER$x$CMD
[size=1em]expect{
[size=1em]"password"{send"$passwdr"}
[size=1em]"yes/no"{send"yesr";exp_continue;}
[size=1em]}
[size=1em]expecteof
[size=1em]}
1、这里界说了三台办事器192.168.0.100192.168.0.101192.168.0.102,界说了用户user1的暗码为passwd1,用户user2的暗码为passwd2,假设剧本文件名为ms,用法为:
./ms用户下令
如./msuser1date
2、在利用剧本时,请确认体系已装置有expect下令,centos利用yuminstallexpect装置,ubuntu利用apt-getinstallexpect装置。
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们! |
|