xsync.sh文件#!/bin/bash # 文件名: xsync.sh # 功能: 在Hadoop集群中分发文件/目录到多个节点 # 使用方法: ./xsync.sh <文件或目录1> [文件或目录2] ... [文件或目录N]# 1. 判断参数个数 if [ $# -lt 1 ]; then echo "错误: 参数不足!" echo "使用方法: $0 <文件或目录1> [文件或目录2] ..." exit 1 fi# 2. 遍历集群所有机器 # 注意: 请根据您的实际环境修改主机名列表 for host in hadoop01 hadoop02; do echo "================== $host ==================" # 3. 遍历所有输入的文件/目录 for file in "$@"; do # 4. 判断文件/目录是否存在 if [ -e "$file" ]; then # 5. 获取父目录的绝对路径 pdir=$(cd -P "$(dirname "$file")" && pwd) # 6. 获取当前文件/目录的名称 fname=$(basename "$file") # 7. 在远程主机上创建父目录 ssh "$host" "mkdir -p '$pdir'" # 8. 使用rsync同步文件/目录 echo "正在同步: $file -> $host:$pdir" rsync -av "$pdir/$fname" "$host:$pdir" else echo "警告: 文件/目录 '$file' 不存在,已跳过" fi done doneecho "=========================================" echo "分发完成!"在 .bashrc 配置如下alias xsync='/home/hadoop/xsync.sh'