Linux集群准备-同步

免密登录

生成ssh密钥

  • ssh-keygen -t rsa

分发密钥

  • ssh-copy-id 机器名
  • ssh-copy-id centos7-100

同步文件脚本

  • 安装同步命令:yum install -y xsync
  • 创建文件:/usr/bin/xsync
  • 修改文件权限:chmod +x xsync
  • .示例:xsync local.txt centos7- 100 102
  • 把本地的local.txt 同步到centos7-100,centos7-101,centos7-102
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
        echo no args
        echo example : sync 本地文件名 机器前缀 开始序号 截止序号
        exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
prefix=$2
start=$3
end=$4
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

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

#5 循环
for ((i=$start; i<=$end; i ++))
do
        echo sync from $pdir/$fname to $prefix$i:$pdir . 0%
        rsync -av $pdir/$fname $user@$prefix$i:$pdir
        echo sync from $pdir/$fname to $prefix$i:$pdir . 100%
done

同步执行脚本

  • 创建文件:/usr/bin/xcall
  • 修改执行权限:chmod +x xcall
  • 示例:xcall "pwd"
#!/bin/sh
pcount=$#
prefix=centos7-
start=100
end=102
if((pcount==0));then
        echo no args
        exit;
fi
for((host=$start; host<=$end; host++)); do
        echo ==================$prefix$host==================
        ssh root@$prefix$host $@
done
posted @ 2021-01-12 11:35  java拌饭  阅读(118)  评论(0编辑  收藏  举报