码迷,mamicode.com
首页 > 系统相关 > 详细

strive_tan shell编程实战2-分发系统

时间:2019-08-28 00:42:15      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:spawn   expect脚本   mic   usr   body   png   info   交互   set   

1.  expect的应用

 1)传输文件

 2)远程执行命令,无需交互,无需输入密码

 3)上线的shell脚本(工具),核心是expect,即分发系统

2. expect的安装

   yum install  -y expect

3.  expect语言实例1:自动远程登陆某台服务器

#! /usr/bin/expect

set host "192.168.133.132"

set passwd "123456"

spawn ssh root@$host

expect {

"yes/no" { send "yes\r"; exp_continue}

"password:" { send "$passwd\r" }

}

interact

4. expect语言实例2:自动远程登陆某台服务器后,并执行命令

#!/usr/bin/expect

set user "root"

set passwd "123456"

spawn ssh $user@192.168.133.132

expect {

"yes/no" { send "yes\r"; exp_continue}

"password:" { send "$passwd\r" }

}

expect "]*"

send "touch /tmp/12.txt\r"

expect "]*"

send "echo 1212 > /tmp/12.txt\r"

expect "]*"

send "exit\r"

5. expect脚本之传递参数

#!/usr/bin/expect

set user [lindex $argv 0]

set host [lindex $argv 1]

set passwd "123456"

set cm [lindex $argv 2]

spawn ssh $user@$host

expect {

"yes/no" { send "yes\r"}

"password:" { send "$passwd\r" }

}

expect "]*"

send "$cm\r"

expect "]*"

send "exit\r"

       $argv0   表示要传递给变量user的参数;$argv1,$argv2同理

6. expect脚本之同步文件

   技术图片

7.  expect脚本之构建文件分发系统

   技术图片

8. 

#!/usr/bin/expect

set host [lindex $argv 0]

set passwd "123456"

set cm [lindex $argv 1]

spawn ssh root@$host

expect {

"yes/no" { send "yes\r"}

"password:" { send "$passwd\r" }

}

expect "]*"

send "$cm\r"

expect "]*"

send "exit\r"

strive_tan shell编程实战2-分发系统

标签:spawn   expect脚本   mic   usr   body   png   info   交互   set   

原文地址:https://www.cnblogs.com/tanzhirong/p/11421533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!