```
#!/bin/bash
des_pass=testtest
expect -c "
spawn scp target/aaa-0.0.1.war root@192.168.1.30:/home/GameUser/MagicvesselUserWeb/aaa-release.war

expect \"password:\"
send \"${des_pass}\r\"
expect eof
"
#!/usr/bin/expect
set timeout 100
set password "123456"
spawn sudo rm -rf zzlogic
expect "root123456"
send "$password\n"
interact
[yjwan@test ~]$ ftp -i -n 192.168.21.46 <
user dbftp dbftp101
ls
EOF
#!/usr/bin/expect
set timeout 10
set host [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set src_file [lindex $argv 3]
set dest_file [lindex $argv 4]
spawn scp $src_file $username@$host:$dest_file
 expect {
 "(yes/no)?"
  {
  send "yes\n"
  expect "*assword:" { send "$password\n"}
 }
 "*assword:"
{
 send "$password\n"
}
}
expect "100%"
expect eof
#!/usr/bin/expect -f
set dtime [lindex $argv 0 ] 
set password 111111
set timeout 3000;
spawn /usr/bin/scp /software/databk/$dtime.sql cdczhangg@10.151.254.25:/software/mysqldata/
#spawn ssh cdczhangg@10.151.254.25
expect  {
"*yes/no" {send "yes\r";exp_continue}
"*password:" {send "$password\r"}
}
interact
#!/usr/bin/expect
set timeout 30
set file [lindex $argv 0]

spawn scp $file root@xxx.xxx.xxx.xxx:目标服务器文件保存路径

expect -re "password:" { send "你的服务器密码\r" }
expect eof
1. [#!/usr/bin/expect]
告知系统脚本里的代码使用那一个shell来执行。 
注意:这一行需要在脚本的第一行。 
2. [set timeout <timeout>] 
基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒. timeout -1 为永不超时
3. [spawn <command>] 
spawn是进入expect环境后才可以执行的expect内部命令, 主要给后续的命令加个壳, 用来传递交互指令.
4. [expect "<match_string>"] 
这里的expect也是expect的一个内部命令,请不要惊讶.
5. [send "<response_string>\r"] 
这里就是执行交互动作,与手工输入内容的动作等效。 
温馨提示: 命令字符串结尾别忘记加上“\r”,如果出现异常等待的状态可以核查一下.
6. [interact] 
执行完成后保持交互状态,把控制权交给控制台, 若要退出,使用expect eof代替
7. $argv 参数数组
expect脚本可以接受从bash传递过来的参数.可以使用[lindex $argv n]获得,n从0开始,分别表示第一个,第二个,第三个....参数
[yjwan@test ~]$ ftp -i -n 192.168.21.46 <
p="">
user dbftp dbftp101
ls
EOF
#!/usr/bin/expect
spawn ssh root@1.1.1.1
expect "*password:"
send "123\r"
expect "*#"
interact
#!/bin/bash
# using one command line parameterfactorial=1
for (( number=1; number<=$1; number++ ))
do
  factorial=$[ factorial * $number ]
done
echo The factorial of $1 is $factorial
[client]
user=username
password=password
#!/bin/bash
expect -c "
spawn scp root@1.2.3.4:/root/1.log /root
expect {
\"*assword\" {set timeout 300; send \"password\r\";}
\"yes/no\" {send \"yes\r\"; exp_continue;}
}
expect eof"
[yjwan@test ~]$ ftp -i -n 192.168.21.46 <<EOF
  user dbftp dbftp101
  ls
  EOF
`cd $path && sshpass -p HS~u8ro8e scp -o StrictHostKeyChecking=no $package javadev\@121.199.60.78:/home/javadev/server`;
# vim  /etc/ssh/sshd_config
Port 3389          //修改端口号,修改后客户端登陆ssh  -p  3389 x.x.x.x
Protocol 2
ListenAddress  192.168.168.174       //不是在所有IP地址上监听,只监听指定IP地址
PermitRootLogin  no        //不允许root用户以ssh方式登陆
PermitEmptyPasswords  no   //不允许使用空密码
UseDNS no            //不执行DNS反解
LoginGraceTime  2m    //登录限时(宽限期),若客户端超过此时间(默认2分钟)
//未登录成功,服务器将主动断开连接
StrictModes yes        //严格模式,此模式会在允许登入前检查用户家目录和密钥库
//文件的权限、归属,若有异常(其他人能写入)则拒绝登入
MaxAuthTries  6     //每次连接允许认证登录的最多次数,若超过此次数
//仍未登录成功,服务器将主动断开连接
  • 1
  • 2
  • 3
  • 4
  • 5