scp脚本免输入密码(利用expect解释器)
创始人
2024-11-11 07:09:09
0

expect交互:

spawn启动指定进程(发送命令) -> expect获取指定关键字 -> send发送回应 -> 执行完成 -> 继续或退出

1.先贴脚本

主要是做远程创建目录,然后将本地文件或文件夹scp上传(指定服务器传输,免输入密码)

./scp.sh port host username password src_file desk_file

#!/usr/bin/expect set timeout 10  # if {[llength $argv] != 6} {     # puts "参数不全!"     # exit 1 # }  set port [lindex $argv 0] set host [lindex $argv 1] set username [lindex $argv 2] set password [lindex $argv 3] set src_file [lindex $argv 4] set dest_file [lindex $argv 5]   #创建目录 spawn ssh -p $port $username@$host "mkdir -p $dest_file"  expect {     "(yes/no)?" {         send "yes\n"         exp_continue	     }     "*assword:" {         send "$password\n"     } } #scp传输 spawn scp -P $port $src_file $username@$host:$dest_file   expect {     "(yes/no)?" {         send "yes\n"         exp_continue     }     "*assword:" {         send "$password\n"     } }  expect {     "100%" {         exp_continue     }     eof }  

2.安装expect

yum安装

yum install -y tcl yum install -y expect

源码安装

下载

依赖tcl:

https://www.tcl.tk/software/tcltk/download84.html

expect:

https://sourceforge.net/projects/expect/files/

解压

tar -zxvf tcl8.4.20-src.tar.gz tar -zxvf expect5.45.3.tar.gz

安装tcl

cd tcl8.4.20/unix/ ./configure --prefix=/usr/tcl --enable-shared make make install cp tclUnixPort.h ../generic

安装expect

cd /root/expect5.45.3/ ./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=/root/tcl8.4.20/generic make make install ln -s /usr/tcl/bin/expect /usr/bin/expect

写入环境变量

1、vi /etc/profile # 写入下面内容内容 2、export PATH=$PATH:/usr/bin/ # 更新配置文件 3、source  /etc/profile

简单测试

[root@zhangsan ~]# expect expect1.1> send "hello world\n" hello world 

安装成功!放心食用

如果执行脚本报错,那有可能是脚本编码不是uinx,需转换一下

可以使用 dos2unix 命令来将脚本文件转换为 UNIX 格式,这将删除 Windows 换行符并使其在 Linux 上能够正确解释

dos2unix scp.sh 

如果 dos2unix 命令不可用,你也可以使用 sed 命令来去除 \r

sed -i 's/\r$//' scp.sh 

相关内容

热门资讯

一分钟了解“金花链接房卡找谁买... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
华为买谷歌安卓系统,探索自主创... 你知道吗?最近有个大新闻在科技圈里炸开了锅,那就是华为竟然出手购买了谷歌的安卓系统!这可不是一个简单...
实测分享”海洋世界有挂吗“卡农... 实测分享”海洋世界有挂吗“卡农大厅房间卡怎么购买游戏中心打开微信,添加客服【113857776】,进...
秒懂教程!玩拼三张房卡从哪里买... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
正版授权“玩链接牛牛金花房卡是... 新天道是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享...
推荐一款!金花房卡专卖店新西游... 您好!微信新西游/飞鹰互娱大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(新西游/飞鹰...
玩家须知”海洋世界怎么买房卡“... 来教大家如何使用怎么买房卡房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添加...
重大通报,金花微信链接市场价格... 海草众厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
秒懂教程!怎么创建拼三张房间卡... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
IA解析/金花房卡出售新奇玩乐... IA解析/金花房卡出售新奇玩乐/微信链接房卡购买渠道新奇玩乐是一款非常受欢迎的游戏,咨询房/卡添加微...
ia实测“金花房卡链接怎么购买... 新超圣牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
实测分享”赢家众娱房卡获取“拼... 实测分享”赢家众娱房卡获取“拼十房卡充值 微信牛牛房卡客服微信号微信游戏中心打开微信,添加客服【11...
ia攻略/斗牛房间怎么创建的生... 生肖系列/新大圣是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:33...
秒懂教程!微信牛牛房卡怎样开,... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享受...
科技实测!牛牛房卡出售旺旺大厅... 您好!微信旺旺大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(旺旺大厅)大厅介绍:...
玩家攻略”赢家众娱是如何购买的... 玩家攻略”赢家众娱是如何购买的“详细房卡使用教程 微信牛牛房卡客服微信号微信游戏中心打开微信,添加客...
一分钟推荐“微信怎样开炸金花房... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
推荐一款!牛牛房卡出售江山大厅... 今 日消息,江山大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
正规平台有哪些,游戏推荐斗牛房... 神盾大厅/新天道房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 ...
玩家须知”海豚大厅如何购买房卡... 玩家须知”海豚大厅如何购买房卡“拼三张房卡充值 微信牛牛房卡客服微信号微信游戏中心打开微信,添加客服...