Bash 多主機自動部署(Script 推送 + 遠端執行)

目標:將多作業系統(CentOS / Ubuntu)的 Web 部署腳本,自動推送到遠端主機並執行。


1️⃣ SCP 推送文件

scp local_file username@hostname:/destination/path

scp testfile.txt devops@web01:/tmp/

image.png

scp devops@web01:/tmp/testfile.txt ./local_dir/


2️⃣ 編寫自動部署腳本

#!/bin/bash

USR=devops

for host in $(cat remote_hosts)
do
    echo "#########################"
    echo "Connecting to $host"

    # 推送腳本
    scp multios_websetup.sh $USR@$host:/tmp/

    # 遠端執行
    ssh $USR@$host "sudo bash /tmp/multios_websetup.sh"

    # 清理腳本(可選)
    ssh $USR@$host "rm -f /tmp/multios_websetup.sh"

    echo "Execution completed on $host"
    echo "#########################"
done


3️⃣ 注意事項

  1. 權限問題