在多个Linux上执行命令

Eave 2026.06.23

在多个Linux上执行命令

#!/bin/bash

cmd="$*"

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color

# 服务器列表
servers=(
    "localhost"
)


# 执行函数
execute() {
    local server="$1"
    local cmd="$2"

    # 执行SSH命令
    if [ "$server" = "localhost" ]; then
        # 本地执行
        eval "$cmd"
    else
        # 远程SSH执行
        ssh -o ConnectTimeout=10 -o BatchMode=yes -o StrictHostKeyChecking=no "$server" "$cmd"
    fi
}

# 并行执行函数
for server in "${servers[@]}"; do
    # 在每个服务器上执行命令
    echo -e "${CYAN}==================== $server ====================${NC}"
    execute "$server $cmd"
done