给我一个shell脚本,在一台机器上执行一条命令,其他机器也去执行这条命令
时间: 2024-02-22 16:00:20 浏览: 69
你可以使用SSH远程登录到其他机器并执行相同的命令,以下是一个简单的shell脚本示例:
```shell
#!/bin/bash
# 定义要执行的命令
command="ls -la /var/log"
# 定义要登录的远程机器列表
servers=("192.168.1.101" "192.168.1.102" "192.168.1.103")
# 循环遍历远程机器列表并执行命令
for server in "${servers[@]}"
do
echo "Executing command on ${server}..."
ssh user@${server} "${command}"
done
```
在这个示例中,我们定义了要执行的命令和要登录的远程机器列表。然后遍历远程机器列表,并使用SSH远程登录到远程机器并执行相同的命令。
你可以将这个脚本保存为一个文件,例如`run-command.sh`,并使用`chmod +x run-command.sh`命令将其设置为可执行文件。然后在终端上运行`./run-command.sh`即可执行该脚本。
相关问题
现在有一个IP列表文件。给我一个shell脚本,在一台机器上执行一条命令,列表里的其他机器自动执行这条命令
可以使用ssh命令在远程机器上执行命令。以下是一个简单的脚本,可以将命令发送到IP列表中的所有机器上执行:
```bash
#!/bin/bash
# IP列表文件路径
IP_LIST=/path/to/ip-list.txt
# 要执行的命令
COMMAND="echo 'Hello, world!'"
# 遍历IP列表,依次执行命令
for IP in `cat $IP_LIST`
do
ssh $IP "$COMMAND"
done
```
将上面的脚本保存为一个.sh文件,然后使用chmod命令赋予执行权限,即可通过./filename.sh执行这个脚本。请注意,执行此脚本需要在本地机器上安装ssh,并且必须在远程机器上设置了ssh密钥认证。
现在有一个IP列表文件。给我一个shell脚本,在一台机器上执行一条命令,列表里的其他机器自动执行这条命令,要求用while语句
好的,以下是一个使用while循环读取IP列表文件并执行命令的示例shell脚本:
```bash
#!/bin/bash
# 读取IP列表文件
while read ip; do
# 执行命令
ssh user@$ip "command"
done < ip_list.txt
```
其中,ip_list.txt是存储IP列表的文件,每行一个IP地址。user是登录远程机器的用户名,"command"是需要在远程机器上执行的命令。这个脚本会循环读取IP列表文件中的每个IP地址,并通过SSH连接到对应的远程机器执行命令。
注意,需要在运行脚本前确保本地机器已经配置好SSH免密登录到远程机器,否则会要求输入远程机器的密码。
阅读全文