admin 管理员组

文章数量: 887021


2023年12月17日发(作者:java虚拟机可以直接读取并执行java源代码文件)

linux expect用法

Linuxexpect是一种自动化工具,用于编写脚本来执行特定的任务。它通常被用来与其它程序进行交互,比如SSH,Telnet和FTP等。使用expect,您可以编写一个脚本,模拟用户的输入,并根据需要执行相应的操作。

下面是使用expect的一些示例:

1. 自动登录SSH

使用expect可以自动登录SSH,避免手动输入用户名和密码。以下是一个例子:

```

#!/usr/bin/expect

set timeout 30

set ip [lindex $argv 0]

set user [lindex $argv 1]

set password [lindex $argv 2]

spawn ssh $user@$ip

expect {

'(yes/no)?' {

send 'yesr'

expect '*assword:' { send '$passwordr' }

}

'*assword:' { send '$passwordr' }

- 1 -

}

interact

```

该脚本将读取IP地址,用户名和密码作为命令行参数,并使用spawn命令打开SSH连接。根据服务器的响应,脚本将模拟输入'yes',密码,或者都不输入。最后,脚本将输入交给用户,以便手动操作。

2. 自动上传文件

使用expect,您可以编写一个脚本,自动上传文件到FTP服务器。以下是一个例子:

```

#!/usr/bin/expect

set timeout 30

set ftp_server [lindex $argv 0]

set ftp_user [lindex $argv 1]

set ftp_password [lindex $argv 2]

set local_file [lindex $argv 3]

set remote_dir [lindex $argv 4]

spawn ftp $ftp_server

expect 'Name ('

send '$ftp_userr'

expect 'Password:'

send '$ftp_passwordr'

- 2 -

expect 'ftp>'

send 'cd $remote_dirr'

expect 'ftp>'

send 'put $local_filer'

expect 'ftp>'

send 'byer'

```

该脚本将读取FTP服务器地址,用户名,密码,本地文件和远程目录作为命令行参数,并使用spawn命令打开FTP连接。脚本将模拟输入用户名和密码,然后进入远程目录。最后,它将上传本地文件,然后退出FTP连接。

总结

Expect是一个非常有用的自动化工具,可以脱离手动输入和操作,自动执行特定任务。使用expect,您可以编写一个脚本,模拟用户的输入,并根据需要执行相应的操作。无论是自动登录SSH,还是上传文件到FTP服务器,expect都可以帮助您自动完成任务。

- 3 -


本文标签: 脚本 输入 自动 执行