栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

内网离线 expect 实现SCP免二次输入密码操作下载文件

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

内网离线 expect 实现SCP免二次输入密码操作下载文件

首先感谢三位前辈的文章指引:

一. .获得离线rpm安装包的方式: 内网环境centos7 yum离线安装软件包_cl2010abc的专栏-CSDN博客_yum 离线安装

二. .yum更新失败解决方案(中间因为断网发生了一次)

.​​​​​​【已解决】yum更新失败:rpmdb: BDB0113 Thread/process 2673/140126198814528 failed: BDB1507 Thread died..._haohaoxuexiyai的博客-CSDN博客3

三. .expect脚本提供

因为这个问题纠缠了很久,再翻历史记录找不到了,特别遗憾,但由衷的表示感谢

#1.安装插件
# 首先找一台有网的机器, 安装一个下载离线安装包的插件
yum install -y yum-plugin-downloadonly
#2.下载expect依赖的安装包(我这里下载到当前文件夹)
yum install -y --downloadonly --downloaddir=. expect

下载完成(通过各种媒介转移到内网机上):

 开始离线安装:

# 需要先安装TCL插件
yum localinstall tcl-8.6.8-2.el8.x86_64.rpm
# 再安装expect
yum localinstall expect-5.45.4-5.el8.x86_64.rpm

制作调用脚本(这个脚本是下载文件夹的)

#!/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 -r $username@$host:$src_file $dest_file
 expect {
 "(yes/no)?"
  {
    send "yesn"
    expect "*assword:" { send "$passwordn"}
  }
 "*assword:"
  {
    send "$passwordn"
  }
}
expect "100%"
expect eof

调用(下载文件夹):

./expectTest.sh [IP] [USERNAME] [PASSWORD] [远程目录] [本地目录]

调用(下载文件):修改脚本中的 "spawn scp -r $username@$host:$src_file $dest_file", "spawn"后边是scp命令, 关键参数都是用的变量, 按照需求做修改。

抛砖引玉, 欢迎大家批评指正。

最后, 有一些分享者, 表面上做分享, 背地里把不是自己开发的关键资源做成有偿下载, 这种行为很让人不齿!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/642219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号