Linux远程执行多个命令,linux利用ssh远程执行多台机器执行同样的命令

准备工作

基于公私钥认证或者用户名密码认证能确保登录到远程服务器(有点基本运维知识的人做这个事情都不是问题)

cmd如果是脚本,注意绝对路径问题(相对路径在远程执行时就是坑)

配置ssh免登录:

首先找一台管理机(随便那台机器什么配置都可以,只要能和远程执行的机器通信就行)

(1)ssh-keygen -t rsa.                   ###生成公钥/私钥对

(2)ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.162     ###拷贝到远程机器上,自动把cat id_rsa.pub >> .ssh/authorized_keys步骤执行。在对方目录下就会看到authorized_keys,否则,拷贝过去要手动执行这个命令

不足

这个命令可以满足我们大多数的需求,但是通常运维部署很多东西的时候需要root权限,但是有几处限制:

远程服务器禁止root用户登录

在远程服务器脚本里转换身份用expect需要send密码,这样不够安全

示例脚本

#!/bin/bash

#变量定义

ip_array=("192.168.0.162")   ##主机列表可以写在括号里,多个主机空格分割,也可以写个文件-主机清单

user="root"

remote_cmd="/etc/init.d/sshd restart"

port="22"

#本地通过ssh执行远程服务器的脚本

for ip in ${ip_array[*]}

do

ssh -t -p${port} ${user}@${ip} "${remote_cmd}" >> /var/log/ssh.log

done

4b02c035d29661b78c03fb3bd1dcf3ed.png

d77e7285c9bd4a10c4d5f7580d128146.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值