共计 1899 个字符,预计需要花费 5 分钟才能阅读完成。
这篇“Linux 中如何用 ssh 命令统计分布式集群信息”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux 中如何用 ssh 命令统计分布式集群信息”文章吧。
一、统计分布式集群信息的思路
用免密的远程登陆命令,实现一台机器访问其他集群的机器。因此想要实现有几个重要步骤:
学会 shh 的使用方法
实现免密登录
编写 shell 程序
二、SSH 加密原理
非对称加密技术是一种加密和解密用的不同密钥的加密方法。其中 RSA 和 DSA 就是非对称加密方法。当然非对称加密算法有一个前提,就是有一对密钥可以相互加密和解密,通常这一对密钥就会成为持有者的公钥和私钥。公钥是其他人可以知悉的密钥,而私钥只能持有者自己知道。当然如果私钥泄露给外人,可能会有信息安全问题。
假如:A 要发送给 B 一个加密数据。第一种方法是:A 用自己的私钥加密,B 获得数据后用 A 的公钥解密。第二种方法是:A 用 B 的公钥加密数据,B 获得数据后再用自己的私钥解密。
SSH 远程登录用的是第一种方法。
三、SSH 命令
常用的方法是
ssh -i [私钥文件名] -p [端口号] user@hostname [执行的命令]
其中私钥文件名默认为 $HOME/.ssh/id_rsa 或者 $HOME/.ssh/id_dsa,端口号默认为 22.
例如:
ssh myname@128.180.146.89 # 输入目标主机的密码后进行远程操作,exit 命令退出
四、利用 ssh-keygen 和 ssh-copy-id 实现免密登录
ssh-keygen # 直接全部回车,先都默认
然后会在 $HOME/.ssh/ 目录下生成一个密钥对文件,其中 *.pub 统一为公钥文件,另外一个就是私钥文件。
接下来把公钥文件中的内容拷贝到目标主机用户的 $HOME/.ssh/authorized_keys 中。拷贝方式可以自己手动操作。也可用如下命令实现
ssh-copy-id -i [公钥文件名] user$hostname
例如 :
ssh-copy-id -i $HOME/.ssh/id_rsa.pub myname@128.180.146.89
然后再执行远程登录命令就可以实现免密登录啦。如果第二次登录还需要密码,可能是因为文件和文件目录权限问题。也可能是因为连接的私钥与公钥不是一对。
五、Linux Shell 脚本实现
sshtest.sh 文件:
#!/bin/bash
func___setenv(){
RTS_ECT_DIR= $HOME
#.....
######################################
# 程序主体
######################################
#调用环境变量
func___setenv
#读取机器连接信息
while read line
ssh_cmd=
ssh_linkhost=`echo ${line}`
while read cmdline
do
# 空命令行跳过
if [ -z $cmdline ]; then
continue
fi
# 读取的命令行拼接;
if [ ! -n $ssh_cmd ]; then
ssh_cmd=`echo ${$cmdline}` ;
else
ssh_cmd= ${ssh_cmd}; `echo ${$cmdline}` ;
fi
done ${RTS_ECT_DIR}/sshcmd.cfg
#执行远程命令
ssh $ssh_linkhost $ssh_cmd
/dev/null
done ${RTS_ECT_DIR}/sshlink.cfg
sshlink.cfg 文件:前提要先配好密钥才可以免密登录
myname@128.180.146.89
myName@128.180.146.90
Myname@128.180.146.91
sshcmd.cfg 文件:根据自己需要填写
ps -ef|grep java
df -h
六、ssh 只循环一次问题
如果上述代码的倒数第二行如果改成
ssh $ssh_linkhost $ssh_cmd
那么 while 循环就只循环 1 次。因为 while read line 会把循环信息放到标准输入中,而 ssh 命令会把输入缓存全部读光,因此 while 不在循环,所以 ssh 命令需要重定向。
以上就是关于“Linux 中如何用 ssh 命令统计分布式集群信息”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。