怎么将文件目录分发到各个服务器,批量分发指定目录或文件

应用场景:

3b61f801cffcec8da09ed32986b490cc.png

脚本需求:

以10.0.50.104为中心,向周边各个网段内的所有服务器分发目录或文件,每台服务器上都有Tomcat-0~13等一共14个应用项目,每个应用各自独立固定。

可能服务器A上仅仅只有Tomcat0-3在运行项目,有的服务器B上仅仅只有Tomcat-4-7在运行项目。需要使用脚本可以灵活批量复制项目目录到生产环境做发布。

4bda0a27bab1e36eaaf64fc276fd01f1.png

解决思路:scp -r /usr/local/tomcat-0/webapps/* root@目标IP:/usr/local/tomcat-0/webapps/

其中可以看见有Tomcat-0和目标IP两个地方需要做处理,而且IP跨度的网段很多,很难做到统一。故此选择使用Select语句来选择,并将IP做传参处理。请提前做好SSH免秘钥认证

例如:scp.sh 192.168.100.101 192.168.100.102 ...

脚本案例:#!/bin/bash

PS3="Select a number:"

select Tomcat in {Tomcat-{0,1,2,3,4,5,6,7,8,9,10,11,12,13},exit};do

case $Tomcat in

Tomcat-0)

for p in $*

do

scp -r /usr/local/tomcat-0/webapps/bison-sc-finance/WEB-INF/classes/com root@$p:/usr/local/tomcat-0/webapps/bison-sc-finance/WEB-INF/classes/

done

break

;;

Tomcat-1)

for p in $*

do

scp -r /usr/local/tomcat-1/webapps/bison-sc-advertising/WEB-INF/classes/com root@$p:/usr/local/tomcat-1/webapps/bison-sc-advertising/WEB-INF/classes/

done

break

;;

Tomcat-2)

for p in $*

do

scp -r /usr/local/tomcat-2/webapps/bison-conversion/WEB-INF/classes/com root@$p:/usr/local/tomcat-2/webapps/bison-conversion/WEB-INF/classes/

done

break

;;

Tomcat-3)

for p in $*

do

scp -r /usr/local/tomcat-3/webapps/bison-product/WEB-INF/classes/com root@$p:/usr/local/tomcat-3/webapps/bison-product/WEB-INF/classes/

done

break

;;

Tomcat-4)

for p in $*

do

scp -r /usr/local/tomcat-4/webapps/bison-order/WEB-INF/classes/com root@$p:/usr/local/tomcat-4/webapps/bison-order/WEB-INF/classes/

done

break

;;

Tomcat-5)

for p in $*

do

scp -r /usr/local/tomcat-5/webapps/bison-classify/WEB-INF/classes/com root@$p:/usr/local/tomcat-5/webapps/bison-classify/WEB-INF/classes/

done

break

;;

Tomcat-6)

for p in $*

do

scp -r /usr/local/tomcat-6/webapps/bison-invoice/WEB-INF/classes/com root@$p:/usr/local/tomcat-6/webapps/bison-invoice/WEB-INF/classes/

done

break

;;

Tomcat-7)

for p in $*

do

scp -r /usr/local/tomcat-7/webapps/bison-mail-reply/WEB-INF/classes/com root@$p:/usr/local/tomcat-7/webapps/bison-mail-reply/WEB-INF/classes/

done

break

;;

Tomcat-8)

for p in $*

do

scp -r /usr/local/tomcat-8/webapps/bison-counterfeit/WEB-INF/classes/com root@$p:/usr/local/tomcat-8/webapps/bison-counterfeit/WEB-INF/classes/

done

break

;;

Tomcat-9)

for p in $*

do

scp -r /usr/local/tomcat-9/webapps/bison-sc-good-review/WEB-INF/classes/com root@$p:/usr/local/tomcat-9/webapps/bison-sc-good-review/WEB-INF/classes/

done

break

;;

Tomcat-10)

for p in $*

do

scp -r /usr/local/tomcat-10/webapps/bison-advertising-sync/WEB-INF/classes/com root@$p:/usr/local/tomcat-10/webapps/bison-advertising-sync/WEB-INF/classes/

done

break

;;

Tomcat-11)

for p in $*

do

scp -r /usr/local/tomcat-11/webapps/bisn-advertising-adjust/WEB-INF/classes/com root@$p:/usr/local/tomcat-11/webapps/bisn-advertising-adjust/WEB-INF/classes/

done

break

;;

Tomcat-12)

for p in $*

do

scp -r /usr/local/tomcat-12/webapps/bison-keyword-api/WEB-INF/classes/com root@$p:/usr/local/tomcat-12/webapps/bison-keyword-api/WEB-INF/classes/

done

break

;;

Tomcat-13)

for p in $*

do

scp -r /usr/local/tomcat-13/webapps/bison-keyword-ranking/WEB-INF/classes/com root@$p:/usr/local/tomcat-13/webapps/bison-keyword-ranking/WEB-INF/classes/

done

break

;;

exit)

exit

;;

*)

echo "Error,Please enter again!"

esac

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansible是一款非常强大的自动化工具,可以用于批量采集、批量互信、批量复制、分发文件等任务。 1. 批量采集 要批量采集多台服务器的信息,可以使用Ansible的“gather facts”模块。该模块会在每台服务器上执行命令,收集服务器的基本信息,如操作系统版本、CPU、内存等。在Ansible的配置文件中,可以通过设置“gather_facts: true”来开启这个功能。 2. 批量互信 要实现服务器之间的批量互信,可以使用Ansible的“authorized_key”模块。该模块会将一个公钥添加到目标服务器的authorized_keys文件中,从而实现SSH免密登录。在Ansible的配置文件中,可以通过设置“authorized_key: key=”来指定公钥文件的路径。 3. 批量复制 要实现批量复制文件到多个服务器,可以使用Ansible的“copy”模块。该模块会将本地文件复制到目标服务器指定的路径中。在Ansible的配置文件中,可以通过设置“copy: src=”来指定文件的路径,而“copy: dest=”则指定目标路径。 4. 分发文件 要实现批量分发文件到多个服务器,可以使用Ansible的“fetch”模块。该模块会从目标服务器上下载文件到本地机器上指定的路径中。在Ansible的配置文件中,可以通过设置“fetch: src=”来指定目标文件的路径,而“fetch: dest=”则指定本地路径。 以上是使用Ansible实现批量采集、批量互信、批量复制、分发文件的方法。Ansible还可以实现更多的自动化任务,如批量部署应用、批量配置服务等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值