Linux Shell怎么用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 do 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 Shell怎么用ssh命令统计分布式集群信息的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

VS Code 系统要求:操作系统:Windows 10 及以上、macOS 10.12 及以上、Linux 发行版处理器:最低 1.6 GHz,推荐 2.0 GHz 及以上内存:最低 512 MB,推荐 4 GB 及以上存储空间:最低 250 MB,推荐 1 GB 及以上其他要求:稳定网络连接,Xorg/Wayland(Linux)

Linux系统的五个基本组件是:1.内核,2.系统库,3.系统实用程序,4.图形用户界面,5.应用程序。内核管理硬件资源,系统库提供预编译函数,系统实用程序用于系统管理,GUI提供可视化交互,应用程序利用这些组件实现功能。

虽然 Notepad 无法直接运行 Java 代码,但可以通过借助其他工具实现:使用命令行编译器 (javac) 编译代码,生成字节码文件 (filename.class)。使用 Java 解释器 (java) 解释字节码,执行代码并输出结果。

VS Code扩展安装失败的原因可能包括:网络不稳定、权限不足、系统兼容性问题、VS Code版本过旧、杀毒软件或防火墙干扰。通过检查网络连接、权限、日志文件、更新VS Code、禁用安全软件以及重启VS Code或计算机,可以逐步排查和解决问题。

vscode 内置终端是一个开发工具,允许在编辑器内运行命令和脚本,以简化开发流程。如何使用 vscode 终端:通过快捷键 (Ctrl/Cmd ) 打开终端。输入命令或运行脚本。使用热键 (如 Ctrl L 清除终端)。更改工作目录 (如 cd 命令)。高级功能包括调试模式、代码片段自动补全和交互式命令历史。

要查看 Git 仓库地址,请执行以下步骤:1. 打开命令行并导航到仓库目录;2. 运行 "git remote -v" 命令;3. 查看输出中的仓库名称及其相应的地址。

在 Visual Studio Code(VSCode)中编写代码简单易行,只需安装 VSCode、创建项目、选择语言、创建文件、编写代码、保存并运行即可。VSCode 的优点包括跨平台、免费开源、强大功能、扩展丰富,以及轻量快速。

VS Code 可以在 Mac 上使用。它具有强大的扩展功能、Git 集成、终端和调试器,同时还提供了丰富的设置选项。但是,对于特别大型项目或专业性较强的开发,VS Code 可能会有性能或功能限制。
