我是靠谱客的博主 温柔便当,最近开发中收集的这篇文章主要介绍shell脚本带密码远程登录方法shell脚本带密码远程登录方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

shell脚本带密码远程登录方法

文章目录

  • shell脚本带密码远程登录方法
    • 1 sshpass安装方法
    • 2 用法
    • 3 具体使用
    • 4 如何和远程连接服务断开

在写shell脚本的时候会经常遇到需要去另一个服务器上 执行操作,例如连另一个服务器上的Mysql。但是常用的ssh是没有附带密码的,而且又不想创建公钥私钥这种操作。那怎么办呢,可以通过sshpass来解决。

1 sshpass安装方法

sshpass在centos上安装方法:


yum install -y epel-release
yum install -y sshpass

ubuntu安装

 apt-get
install sshpass

2 用法

sshpass -p <服务器密码> ssh -tt root@${服务器IP}
例如: sshpass -p 123456 ssh -tt root@10.1.1.1

3 具体使用

例如我们想写个脚本到远程服务器的Mysql上去建个新表,怎么做呢?具体看如下的脚本:

#!/bin/bash
set -e
MYSQL_HOST="10.1.2.3"
HOST_PASSWORD=hadoop
MYSQL_USER=test
MYSQL_PASSWORD=root
sshpass -p ${HOST_PASSWORD} ssh -tt root@${MYSQL_HOST} << EOF
mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD}
DROP DATABASE IF EXISTS ki_docker;
CREATE DATABASE IF NOT EXISTS ki_docker DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
EOF
echo "finished"

4 如何和远程连接服务断开

以上脚本即可执行完成对远程服务器上的mysql里建个数据库,但是还是最后一句echo "finished"却无法输出。因为没从远程连接断开,怎么断开呢,只需要加两行,exit先退出数据库,然后exit 0断开远程连接,回到现在的执行脚本里继续执行后续的shell命令。

具体如下:

#!/bin/bash
set -e
MYSQL_HOST="10.1.2.32"
HOST_PASSWORD=hadoop
MYSQL_USER=test
MYSQL_PASSWORD=root
sshpass -p ${HOST_PASSWORD} ssh -tt root@${MYSQL_HOST} << EOF
mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD}
DROP DATABASE IF EXISTS ki_docker;
CREATE DATABASE IF NOT EXISTS ki_docker DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
exit;
exit 0
EOF
echo "finished"

最后

以上就是温柔便当为你收集整理的shell脚本带密码远程登录方法shell脚本带密码远程登录方法的全部内容,希望文章能够帮你解决shell脚本带密码远程登录方法shell脚本带密码远程登录方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部