以Linuxexpect解决系统复杂任务(linuxexpect)

linux expect是一种接口脚本工具,它可以帮助我们快速高效地完成复杂的系统任务。最常见的应用就是它可以用来自动完成标准Unix和Linux下的运维管理任务,例如SSH自动登录、FTP文件传输、Telnet登录等。

创新互联主要从事成都网站制作、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务随州,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

首先,在使用linux expect之前,可以首先安装相关的工具,以支持expect的功能:

 apt-get install tcl tk

其中tcl是一种语言,这种语言使用expect进行接口脚本变得更加简单,tk是一种工具集,可以让我们快速的开发Tcl程序。

其次,可以用Linux expect编写复杂的任务脚本,例如自动登录服务器:

 spawn ssh ${username}@${ip_address}
expect {
"yes/no"
{
send "yes\r"
expect "*assword" { send "${password}\r" }
}
"*assword" { send "${password}\r" }
}

上面的脚本首先使用spawn命令自动登录服务器,然后使用expect命令控制任务的流程(“yes/no”选择,提供密码),最后使用send命令将数据发送到控制进程中。

最后,Linux expect可以生成一些简单的图形控制台,以完成更复杂的系统控制任务。例如,可以编写一个Tcl程序来控制Linux系统时间:

# 用Tcl包装Linux expect
package require Tk

# 创建应用程序主窗口
toplevel .mainwin -width 200 -height 150
wm title .mainwin "Time Manager"

# 创建菜单
menubutton .mainwin.File -text "File"
menu .mainwin.File.list -tearoff 0
.mainwin.File.list add command -label "Exit" -command exit
# 创建时间选择框
frame .mainwin.timelist
label .mainwin.timelist.text -text "时间:"
entry .mainwin.timelist.entry -width 15
button .mainwin.timelist.ok -text "设置" -command {set_time}

# 声明proc函数以执行set_time
proc set_time {exp} {
# 获取用户输入的时间
set value [.mainwin.timelist.entry get]
# 使用expect执行
set timeout 10
spawn date -s "$value"
expect {
-re "yes/no" {
send "y\r"
expect {
-re "Is this correct" {
send "y\r"
}
timeout {
exit
}
}
}
timeout {
exit
}
}
}

以上,就是使用Linux expect解决系统复杂任务的示例,它可以帮助我们自动完成标准Unix和Linux下的运维管理任务,极大地提高我们围绕系统任务的工作效率。

香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。

当前名称:以Linuxexpect解决系统复杂任务(linuxexpect)
分享网址:http://www.shufengxianlan.com/qtweb/news25/220475.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联