Mac&linux实现免密上传文件或者登陆

          有时候需要上传文件到远程服务器,但是有的需要密码登陆,这样就不能在脚本中实现,很麻烦。

在mac系统可以使用expect工具实现,mac系统 安装:brew install expect,如果linux的话用yum或者其他源。

下面贴上我的脚本:

#!/usr/bin/expect
#第一行是安装路径

#需要执行的上传命令
spawn scp fileName user@ip:<目标路径>

#设置请求超时时间
set timeout 20

#expect后面跟的是,服务器返回的内容,比如ssh登陆时候,会返回 "password:",然后你在后面输入密码
#此操作返回的是"user@ip's password:",send后面填上你的密码
expect "user@ip's password:" {send "password\r"}
#interact 返回到命令行窗口
interact

最后将文件命名为 xxx.exp,通过expect xxx.exp来执行脚本,当然执行之前别忘了加上权限,执行 chmod a+x *。

如果你想免密登陆,将脚本中 spawn 后面的换成登陆命令即可,"user@ip's password:"替换成"password:",就可以实现不用手动输入密码登陆。

这样就可以在脚本中实现你想做的事情了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值