scp命令自动输入密码远程备份脚本

背景:

scp /areweb_sxsky_db_test.sql root@192.168.3.239:/root执行命令的时候需要输入密码,不满足自动化程序脚本,故将密码硬编码在sh脚本中使用expect命令,(存在安全风险,自行评估风险)

需求 将192.168.3.213服务器文件 远程备份至192.168.3.239服务器

A服务器 192.168.3.213服务器

B服务器192.168.3.239服务器

解决办法

安装expect

yum install expect

 创建sh脚本


#!/bin/bash

expect -c "
    spawn scp /areweb_sxsky_db_test.sql root@192.168.3.239:/root
    expect {
        \"yes/no\" {send \"yes\r\";exp_continue;}
        \"*password\" {set timeout 500;send \"1\r\";}
    }
expect eof"

名词解释

spawn: 是开一个新的进程去执行后面的命令
expect: 是获取spawn命令执行后的信息,看看是否和其事先指定的相匹配,如果匹配就会执行后面的内容。如果单独写expect不写spawn,就不会触发。
send: 发送指定的字符给系统。
exp_continue: 是让expect继续往下匹配。
eof: 关键字用于匹配结束符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值