Shell脚本:分发文件到各个集群节点

找一个全局目录/root/bin 写脚本

javascript 复制代码
touch xsync
chmod 777 xsync
javascript 复制代码
#!/bin/bash

#作者:ldj
#时间:2024-10-15
#描述:拷贝文件

#1. 判断参数个数
if [ $# -lt 1 ]
    then
       echo "Error: Not Enough Argument!"
       exit
fi

#2.遍历集群所有机器
space=">>>>>>>  "
slash="/"
host_arr=(hadoop10 hadoop11 hadoop12)

for host in ${host_arr[@]}
do	
	#3.获取参数列表(文件)
	for file in $@
	do
	    #4.文件是否存在
	    if [ -e $file ]
		    then
		        #5.当前文件父se目录
		        pdir=$(cd -P $(dirname $file); pwd)
			    #6.当前文件名称
			    fname=$(basename $file)
			    echo $pdir$slash$fname$space$host
				
			    ssh $host "mkdir -p $pdir"
		        rsync -av $pdir/$fname $host:$pdir
		    else
		        echo $file does not exists!
	    fi
	done
done

1.从Window 直接拷贝到Linux可能会报错:/bin/bash^M: bad interpreter: No such file or directory

执行脚本前先 执行

javascript 复制代码
sed -i 's/\r$//' xsync

2.还有一个注意配置域名解析 (重启生效)

相关推荐
唐·柯里昂7985 小时前
野火鲁班猫5使用正点原子 RTL8188EUS Wifi模块驱动移植(Linux5.10 Debian系统) 解决zsh报错
linux·c语言·mcu·物联网·ubuntu·硬件工程·软件构建
生活爱好者!5 小时前
【影视项目】NAS 部署稳定视频订阅源咪咕
服务器·网络·docker·容器·音视频
骥龙5 小时前
5.14、AI安全运维体系:构建企业级的“安全超脑”
运维·人工智能·安全
源梦想5 小时前
机甲恐龙动作冒险网页小游戏Linux部署教程
linux·运维·服务器
该用户已不存在5 小时前
Let’s Encrypt 证书有效期将缩至 45 天,运维天都塌了
运维·https·自动化运维
Hoshino.415 小时前
从0开始学习Linux——第七部分:DNS(1)
linux·网络·学习
yiyeguzhou1005 小时前
论文解读:Overcoming the IOTLB wall for multi-100-Gbps Linux-based networking
linux·运维·服务器
Y淑滢潇潇5 小时前
RHCE Day 7 SHELL概述和基本功能
linux·前端·rhce
rabbit_pro5 小时前
Java 文件上传到服务器本地存储
java·服务器·python
妄想出头的工业炼药师5 小时前
cuda如何安装卸载
linux·运维·服务器