集群常用脚本
多重执行xcall.sh #!/bin/bash # 遍历所有节点(集群主机列表) for i in cdhmaster01 cdhmaster02 cdhmaster03 cdhnode01 cdhnode02 cdhnode03 do # 打印当前正在操作的主机,方便区分输出 echo "--------- $i ----------" # 通过 ssh 在远程主机执行传入的命令 # "$*" 表示把所有参数当作一个整体传过去 # 例如:./xcall.sh pwd # 实际执行:ssh cdhmaster01 "pwd" ssh $i "$*" done 集群分发xsync.sh #!/bin/bash if [ $# -eq 0 ]; then echo "Usage: $0 [more files_or_dirs]" exit 1 fi hosts=(cdhmaster01 cdhmaster02 cdhmaster03 cdhnode01 cdhnode02 cdhnode03) user=$(whoami) for src in "$@" do if [ ! -e "$src" ]; then echo "Not found: $src" continue fi abs_src=$(readlink -f "$src") name=$(basename "$abs_src") parent=$(dirname "$abs_src") for host in "${hosts[@]}" do echo "===== $host =====" ssh "$host" "mkdir -p '$parent'" if [ -d "$abs_src" ]; then rsync -av "$abs_src" "$user@$host:$parent/" else rsync -av "$abs_src" "$user@$host:$parent/" fi done done