Shell脚本实现自动输入密码登录服务器

简介:

http://www.jb51.net/article/62349.htm


如scp时不输入密码

yum install tcl expect -y

测试脚本
我们写一个简单的脚本实现scp拷贝文件,在脚本里配置密码,保存为scp.exp如下

复制代码代码如下:


#!/usr/bin/expect  
set timeout 20  
  
if { [llength $argv] < 2} {  
    puts "Usage:"  
    puts "$argv0 local_file remote_path"  
    exit 1  
}  
  
set local_file [lindex $argv 0]  
set remote_path [lindex $argv 1]  
set passwd your_passwd  
  
set passwderror 0  
  
spawn scp $local_file $remote_path  
  
expect {  
    "*assword:*" {  
        if { $passwderror == 1 } {  
        puts "passwd is error"  
        exit 2  
        }  
        set timeout 1000  
        set passwderror 1  
        send "$passwd\r"  
        exp_continue  
    }  
    "*es/no)?*" {  
        send "yes\r"  
        exp_continue  
    }  
    timeout {  
        puts "connect is timeout"  
        exit 3  
    }  
}  


注意,第一行很重要,通常我们的脚本里第一行是#!/bin/bash,而这里是你机器上expect程序的路径,说明这段脚本是由expect来解释执行的,而不是由bash解释执行,所以代码的语法和shell脚本也是不一样的,其中set passwd your_passwd设置成你自己的密码,然后执行如下命令

复制代码代码如下:


./scp.exp ./local_file user@host:/xx/yy/  


执行前确保scp.exp有执行权限,chmod +x scp.exp



参数解释可查看:http://blog.csdn.net/lufeisan/article/details/53488395


      本文转自flayber  51CTO博客,原文链接:http://blog.51cto.com/406647516/1924681 ,如需转载请自行联系原作者






相关文章
|
1月前
|
机器学习/深度学习 弹性计算 Shell
ecs服务器shell常用脚本练习(八)
【4月更文挑战第6天】shell代码训练(八)
117 0
|
1月前
|
弹性计算 安全 Shell
ecs服务器shell常用脚本练习(七)
【4月更文挑战第5天】shell代码训练(七)
145 1
|
1月前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
153 0
|
1月前
|
弹性计算 Shell Go
ecs服务器shell常用脚本练习(九)
【4月更文挑战第10天】shell代码训练(八)
156 0
|
1月前
|
关系型数据库 MySQL Linux
服务器脚本推荐,yum更新阿里镜像源、安装Docker、使用Docker安装MySQL服务
服务器脚本推荐,yum更新阿里镜像源、安装Docker、使用Docker安装MySQL服务
95 1
|
1月前
|
弹性计算 Shell Linux
ecs服务器shell常用脚本练习(六)
【4月更文挑战第4天】shell代码训练(六)
115 0
|
1月前
|
弹性计算 关系型数据库 MySQL
ecs服务器shell常用脚本练习(五)
【4月更文挑战第3天】shell代码训练(五)
98 3
|
1月前
|
弹性计算 Shell 应用服务中间件
ecs服务器shell常用脚本练习(四)
【4月更文挑战第4天】shell代码训练(四)
104 0
|
安全 Shell Linux