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

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 

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...