c语言sscanf函数的用法是什么
233
2022-09-24
shell脚本部署GlusterFS分布式存储系统
#!/bin/bash#AUTHOR:AN#VERSION:1.1.0#DATE:2019-06-19#FUNCTION:部署GlusterFS分布式存储系统#DESCRIPTION:单台服务器做RAID0,可以提高磁盘的读写速度,数据的安全性可以通过GlusterFS来保证######################定义变量######################Nfs_Dir=/cloud_nsd #NFS共享目录Script_Path=$Nfs_Dir/shell #脚本路径Ftp_Server=192.168.1.200 #FTP服务器####################IP地址---主机名###################node1=192.168.1.210node2=192.168.1.211node3=192.168.1.212docker1=192.168.1.21#加载函数库if [ -f "$Script_Path/myfunction.lib" ];then source $Script_Path/myfunction.lib else echo -e "\033[31m函数库不存在\033[0m" exit 68fi###############################################################GlusterFS的rpm包放入自建YUM仓库YUM_CONF(){ local Yum_Conf=/etc/yum.repos.d/local.repo [ ! -f $Yum_Conf ] && touch $Yum_Conf || > $Yum_Conf cat >> $Yum_Conf << EOF[local_repo]name=CentOS-\$releasever - Basebaseurl="ftp://$Ftp_Server/centos-1804"enabled=1gpgcheck=1[myrepo]name=myrepobaseurl="ftp://$Ftp_Server/myrepo"enabled=1gpgcheck=0EOF yum clean all && yum repolist}#主机名解析HOSTS(){ cat >> /etc/hosts << EOF$node1 node1$node2 node2$node3 node3$docker1 docker1EOF}###############################################################创建RAID0CREATE_RAID0(){ mdadm -C /dev/md0 -l 0 -n $1 $2 $3 $4 mdadm --detail /dev/md0 &>/dev/null && OK RAID0}#创建逻辑卷Volume_Name=myvgCREATE_LV(){ vgcreate $Volume_Name /dev/md0 for i in `seq $1` do lvcreate -n ${HOSTNAME}-brick$i -L $2 myvg mkfs.xfs -i size=512 /dev/myvg/${HOSTNAME}-brick$i mkdir -p /bricks/brick-$i echo "/dev/myvg/${HOSTNAME}-brick$i /bricks/brick-$i xfs defaults 0 0" >> /etc/fstab done mount -a && cecho 36 "逻辑卷创建成功" || cecho 31 "逻辑卷创建失败" for i in `seq $1` do mkdir /bricks/brick-$i/brick done }#配置YUM源,设置主机名解析,安装软件INIT(){ YUM_CONF HOSTS YUM glusterfs-server STR_SVC glusterd CA_SERVICE glusterd }#创建信任池CREATE_POOL(){ gluster peer probe $1 }#创建共享卷()CREATE_SHARE(){ gluster volume create docker_data replica 3 \node1:/bricks/brick-3/brick \node2:/bricks/brick-3/brick \node3:/bricks/brick-3/brick \node1:/bricks/brick-4/brick \node2:/bricks/brick-4/brick \node3:/bricks/brick-4/brick gluster volume start docker_data gluster volume info docker_data &>/dev/null && OK docker_data && exit 0 ERROR docker_data && exit $ISERROR}###############################################################客户端挂载使用CLIENT(){ HOSTS YUM glusterfs-fuse# mount -t glusterfs 192.168.1.210:/docker_data /docker_data echo "192.168.1.210:/docker_data /docker_data glusterfs _netdev 0 0" >>/etc/fstab mount -a} #帮助信息HELP(){ cat << EOFGlusterFS.sh version 1.1.0Usage: GlusterFS [-h] [-raid0 磁盘数量 磁盘名1 磁盘名2......] [-lv num 逻辑卷数量 size 逻辑卷大小] [-init] [-pool 节点1 节点2] [-volume]=======================================================================optional arguments: -h 提供帮助信息#所有节点都需要操作 -raid0 创建RAID0 -lv 创建逻辑卷 -init 配置YUM源,主机名解析,安装glusterd#只需要在一个节点上操作 -pool 将节点加入信任池 -volume 创建共享卷EXAMPLE: bash GlusterFS.sh -raid0 3 /dev/vdb /dev/vdc /dev/vdd bash GlusterFS.sh -lv num 4 size 25G bash GlusterFS.sh -pool node2 node3EOF}#############################主程序#############################[ $# -eq 0 ] && HELPcase $1 in -h) HELP;;-raid0) Disk_Num=$2 if [ $# -ne "$[Disk_Num+2]" ];then cecho 31 "Invalid option:bash `basename $0` [-h]" else CREATE_RAID0 $2 $3 $4 $5 fi;;-lv) [ -n $3 -a -n $5 ] && CREATE_LV $3 $5 || cecho 31 "Invalid option:bash `basename $0` [-h]";; -init) INIT;;-pool) for i in $@;do if [ "$i" == "-pool" ];then continue else CREATE_POOL $i fi done;; -volume) CREATE_SHARE;;*) cecho 31 "Invalid option:bash `basename $0` [-h]"esac
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~