假如公司的一个业务,域名为 www.aminglinux.com 现在有5台机器在跑。为了快速查看这5台机器的负载,需要你写一个Shell脚本,运行脚本后,就能一下子把5台机器的负载全部打印出来。
核心要点
- 这个需求是批量登录远程的机器,并执行w命令
- 如果用expect脚本,那么需要知道所有机器的密码,并不方便
- 通过给所有的机器做密钥认证,,安全起见,最好给密钥加上密码。具体操作流程如下:
- 1)新生产一堆密钥:
ssh-keygen -f /root/.ssh/newkey -N 'password'
- 2)使用
ssh-copy-id -i /root/.ssh/newkey user@ip
把公钥内容复制到5台机器上的/root/.ssh/authorized_keys
文件中 - 3)运行:
ssh-agent
,把输出的内容复制并粘贴到当前的终端运行 - 4)运行:
ssh-add /root/.ssh/newkey
,并输入生成密钥的密码,把密码加载到内存中,来直接ssh登录不提示密码 - 5)登录远程5台机器:
ssh -i /root/.ssh/newkey ip
- 1)新生产一堆密钥:
1 | 1)新生产自定义名字和地址的密钥 |
代码内容
1 |
|