Linux文件分发脚本
来源:互联网 发布:淘宝领域数码怎么样 编辑:程序博客网 时间:2024/06/16 07:51
在集群部署、运维时,经常需要把同一份文件复制到其他主机上,以保证各主机的配置是一致的,单个进行scp操作,几台主机还能接受,当有几十台甚至上百机器的集群时,单个scp就会非常的耗时,严重降低了工作效率,下面就是一份文件分发到各主机的脚本,非常的方便使用。
为了分解分发的时候更加快捷方便的使用,集群内部的主机最好已经做好互信,
互信命令:
1.生成公钥:
ssh-keygen 回车
2.复制公钥到各主机,配置互信:
ssh-copy-id-i /home/root/.ssh/id_rsa.pub root@$hostname
分发脚本deploy-file.sh内容:
#!/bin/bash
#set -xif [ $# -lt 3 ] #输入的参数个数小于3各,提示该脚本的使用语法
then
echo "Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag" #用法: ./deply.sh 源文件/目录 目的文件/目录 主机名(all 表示读取配置文件里的所有主机)
echo "Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag confFile" #用法: ./deply.sh 源文件/目录 目的文件/目录 主机标签 配置文件名称
exit
fi
src=$1 #源文件/目录
dest=$2 #目的文件/目录
tag=$3 #主机标签(主机名)(all表示配置文件所有主机,即读取配置文件hostlist.conf)
if [ 'a'$4'a' == 'aa' ] #读取主机列表配置文件
then
confFile=/hadoop/hostlist.conf
else
confFile=$4 #把自己输入的配置文件名字的文件作为主机列表配置文件
fi
if [ -f $confFile ] # 配置文件存在
then
if [ -f $src ] #源文件存在,且源文件是文件(非目录)
then
for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'`
do
echo "-----------------------------$server----------------------"
scp $src $server":"${dest} #scp操作,把文件复制到目的主机对应的路径下
done
elif [ -d $src ] #源文件存在,且源文件是目录,scp的时候需要加-r参数
then
for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'`
do
scp -r $src $server":"${dest}
done
else #源文件不存在
echo "Error: No source file exist"
fi
else #配置文件不存在,报错
echo "Error: Please assign config file or run deploy.sh command with deploy.conf in same directory"
fi
# --------------------脚本内容结束-------------------------------------------------
主机列表配置文件,hostlist.conf(纯文本配置文件),主要配置需要分发到的主机的主机名(确保本机可以解析该主机名和IP地址的对应关系)或者IP地址
#hostname or ip
HD-BATCH-001,all
HD-BATCH-002,all
。。。
。。。
HD-BATCH-119,all
HD-BATCH-120,all
结束。。。。
- Linux文件分发脚本
- linux expect脚本文件分发系统
- Shell分布式系统分发文件脚本
- linux脚本删除文件
- 游戏脚本事件分发
- Linux下创建脚本文件
- Linux脚本文件语法总结
- Linux 内核脚本文件Kconfig
- Linux 交互式Shell脚本文件
- Linux系统文件备份脚本
- linux脚本读取文件内容
- Linux脚本文件相关操作
- linux脚本同步修改文件
- linux脚本读取文件内容
- linux 截取文件内容脚本
- Linux配置文件与脚本文件
- linux shell 读取文件脚本
- Linux rsync同步文件脚本
- 阿里矢量图库的正确打开方式
- (更新)Kafka-可靠的生产者Producer(Java)。
- 各种path
- No module named win32api问题解决
- 35个JQ小技巧
- Linux文件分发脚本
- Linux redis集群环境搭建
- 《伪装的艺术》读后感
- c语言版去除源代码注释
- 欢迎使用CSDN-markdown编辑器
- 小程序scroll-view上下滑的内部加左右滑,scroll-x生效的情况
- 创建地形材质 UE引擎 虚幻4
- Java非反射方式获取方法签名
- eclipse中svn插件,就是点项目右键team后,只显示Apply Patch、Share Project、Share Projects和灰色的Upgrade Projects的解决办法