使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面xsync

2023-12-13 04:23:04

1,功能

使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面。

2,注意点

需要修改的地方:hadoop250 hadoop251 hadoop252 hadoop253 hadoop254
这些是主机名,需要换成自己的主机名,注意中间是空格。
保存之后将权限改为777,可读写

3,shell脚本介绍

shell脚本用法是:提前将可执行的命令语句写入一个文件中,这些命令会按照顺序执行,解释器逐行解释代码。
常见的脚本有:shell、python、PHP…
(用什么解释器就是什么脚本,这里使用的shell,也就是shell脚本)
也是像其他脚本语句一样有不同的语法格式。
一般以“#!/bin/bash”作为脚本开头

4,bash内容

cd /home/yiduoyun/bin

vim xsync

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in hadoop250 hadoop251 hadoop252 hadoop253 hadoop254
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

将权限改为777:

chmod 777 xsync

ls -l

在这里插入图片描述
分发完成之后去被分发的虚拟机就可以看到分发的文件了,实现一键分发。
(相当于scp命令远程拷贝文件),这个shell脚本可以一个指令发送到多台虚拟机。

文章来源:https://blog.csdn.net/m0_58115520/article/details/134818058
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。