xsync分发脚本

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
# 文件名称
fname=`basename $p1`       
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`d -P $(dirname $p1); pwd`
#有时候报错d: 未找到命令 ,改成: pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环,这里host根据自己的节点数和主机名设置
for((host=2; host<4; host++)); do
        echo --------------- hadoop$host ----------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

xsync 是一个用于在集群环境中实现文件同步和分发脚本工具,通常用于大数据平台或分布式计算环境中,以确保多个节点之间的配置文件、脚本或数据保持一致。该脚本基于 rsync 工具开发,结合 ssh 实现对多台主机的批量文件同步和部署操作。 ### 功能 1. **批量文件同步** xsync 支持将本地文件或目录同步到多个远程主机上,适用于部署配置文件、脚本、软件包等。它通过循环遍历主机列表,依次执行 rsync 命令将文件传输到目标节点[^1]。 2. **基于 SSH 的无密码通信** xsync 依赖于 SSH 协议进行远程连接和文件传输,通常需要提前配置 SSH 免密登录,以避免在每次同步时输入密码,提高自动化效率[^1]。 3. **支持并行执行** 某些实现版本的 xsync 支持并行执行文件同步任务,通过多线程或并行处理机制提升传输效率,缩短大规模集群中的文件分发时间。 4. **保留文件属性** xsync 通常封装了 rsync 的 `-a`(归档模式)选项,确保文件权限、时间戳、符号链接等属性在同步过程中保持不变,适用于生产环境中的配置一致性维护[^1]。 5. **错误处理与日志记录** 高级版本的 xsync 脚本可能包含错误检测机制,例如判断目标主机是否可达、文件是否存在等,并记录同步过程中的输出信息,便于排查问题。 ### 用途 1. **集群配置同步** 在 Hadoop、Spark 等分布式系统中,xsync 常用于同步 `core-site.xml`、`hdfs-site.xml` 等配置文件到所有节点,确保集群配置一致。 2. **脚本与程序部署** 在运维自动化中,xsync 可用于将启动脚本、监控程序、补丁文件等快速部署到所有节点,简化维护流程。 3. **日志与数据归档** 在某些场景下,xsync 也可用于从多个节点收集日志文件或临时数据,集中归档到管理节点,便于分析和审计。 4. **测试环境快速部署** 在开发与测试阶段,xsync 可用于快速将新版本代码或测试脚本部署到多个测试节点,提升迭代效率。 ### 示例脚本结构 以下是一个典型的 xsync 脚本简化示例: ```bash #!/bin/bash # 定义目标主机列表 hosts=("node1" "node2" "node3") # 获取要同步的文件路径 files=$@ # 遍历每个主机并执行 rsync 同步 for host in "${hosts[@]}" do rsync -avz -e ssh $files $host:/path/to/target/ done ``` 此脚本接受多个文件路径作为参数,并将它们同步到所有定义的远程主机上的指定目录中。 ### 适用场景 - 需要频繁更新集群节点文件的运维任务。 - 配置管理工具(如 Ansible、Puppet)尚未部署的小型集群。 - 快速部署与测试环境的轻量级同步需求。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值