文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Expect 实例: 使用ssh登陆到一台server执行指定的命令

Expect 实例: 使用ssh登陆到一台server执行指定的命令

时间:2008-09-03  来源:oychw

使用ssh登陆到一台server执行指定的命令

 

注意点:

       Send后面一般都要添加expect。本例是使用for循环重复expect。

       Expect后面的“{“必须和expec在一行

       匹配完一个子项目后,expect下面的项目还会继续执行,在必要的时候需要添加continue,break等。

       子项目中的内容要使用大括号括起来。

 

#!/bin/bash

# \

    exec expect "$0" "$@"

 

#------- write by Neil.xu 2008.0903 QQ:37391319 Email: xurongzhong#gmail.com--------

#------- function : used to ssh a server and execute a command----

 

    set host [lindex $argv 0]

    set command [lindex $argv 1]

    set timeout 15

    match_max 100000

    spawn ssh [string trim $host]

    for {} {1} {} {

        expect   {

            "*Permission denied*" { send "rss123\r";continue }

            "*assword:" { send "kingsit\r" }

            "*connecting*yes*" {send "yes\r"}

            "#" { send "$command\r";break }

            "* key*changed*"  { exec > $env(HOME)/.ssh/known_hosts }

            "*closed*remote host" {return -2}

            "*refused" {return -3}

            timeout { puts "Time out before we can log onto $host"; return -1  }

        }

    }

    expect "#"

    close

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载