全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Linux 自动分区、格式化、挂载脚本详解

自动分区、格式化、挂载脚本

功能:自动检测是否有尚未分区的数据盘,格式化新的数据盘并自动挂载

解决了什么问题:一键式检测是否有尚未分区的数据盘,并能对其格式化和自动挂载,省去了复杂的命令和步骤

执行方法:以root身份执行命令

wget http://mirrors.linuxeye.com/scripts/auto_fdisk.sh
chmod +x auto_fdisk.sh
./auto_fdisk.sh

结果:出现如下即自动分区、格式化、挂载成功:

脚本内容如下:

#!/bin/bash
# Author: yeho <lj2007331 AT gmail.com>
# BLOG: https://blog.linuxeye.com
#
# Notes: OneinStack for CentOS/RadHat 5+ Debian 6+ and Ubuntu 12+
#
# Project home page:
#    http://oneinstack.com
#    https://github.com/lj2007331/oneinstack
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
clear
printf "
#######################################################################
#    OneinStack for CentOS/RadHat 5+ Debian 6+ and Ubuntu 12+   #
#               Auto fdisk               #
#    For more information please visit http://oneinstack.com    #
#######################################################################
"
echo=echo
for cmd in echo /bin/echo; do
    $cmd >/dev/null 2>&1 || continue
    if ! $cmd -e "" | grep -qE '^-e'; then
        echo=$cmd
        break
    fi
done
CSI=$($echo -e "\033[")
CEND="${CSI}0m"
CDGREEN="${CSI}32m"
CRED="${CSI}1;31m"
CGREEN="${CSI}1;32m"
CYELLOW="${CSI}1;33m"
CBLUE="${CSI}1;34m"
CMAGENTA="${CSI}1;35m"
CCYAN="${CSI}1;36m"
CSUCCESS="$CDGREEN"
CFAILURE="$CRED"
CQUESTION="$CMAGENTA"
CWARNING="$CYELLOW"
CMSG="$CCYAN"
# Check if user is root
[ $(id -u) != "0" ] && { echo "${CFAILURE}Error: You must be root to run this script${CEND}"; exit 1; }
MOUNT_DIR=/data
FSTAB_FILE=/etc/fstab
count=0
TMP1=/tmp/.tmp1
TMP2=/tmp/.tmp2
> $TMP1
> $TMP2
# check lock file, one time only let the script run one time 
LOCKfile=/tmp/.$(basename $0)
if [ -f "$LOCKfile" ];then
  echo
  echo "${CWARNING}The script is already exist, please next time to run this script${CEND}"
  echo
  exit
else
  echo
  echo "${CMSG}Step 1.No lock file, begin to create lock file and continue${CEND}"
  echo
  touch $LOCKfile
fi
# check disk partition
check_disk() {
  > $LOCKfile
  for i in `fdisk -l | grep "Disk" | grep "/dev" | awk '{print $2}' | awk -F: '{print $1}' | grep "vd"`
  do
    DEVICE_COUNT=$(fdisk -l $i | grep "$i" | awk '{print $2}' | awk -F: '{print $1}' | wc -l)
    NEW_MOUNT=$(df -h)
    if [ $DEVICE_COUNT -lt 2 ];then
      if [ -n "$(echo $NEW_MOUNT | grep -w "$i")" -o "$(grep -v '^#' $FSTAB_FILE | grep -v ^$ | awk '{print $1,$2,$3}' | grep -w "$i" | awk '{print $2}')" == '/' -o "$(grep -v '^#' $FSTAB_FILE | grep -v ^$ | awk '{print $1,$2,$3}' | grep -w "$i" | awk '{print $3}')" == 'swap' ];then
        echo "${CWARNING}The $i disk is mounted${CEND}"
      else
        echo $i >> $LOCKfile
        echo "You have a free disk, Now will fdisk it and mount it"
      fi
    fi
  done
  DISK_LIST=$(cat $LOCKfile)
  if [ "X$DISK_LIST" == "X" ];then
    echo
    echo "${CWARNING}No free disk need to be fdisk. Exit script${CEND}"
    echo
    rm -rf $LOCKfile
    exit 0
  else
    echo "${CMSG}This system have free disk :${CEND}"
    for i in `echo $DISK_LIST`
    do
      echo "$i"
      count=$((count+1))
    done
    [ $count -gt 1 ] && { echo "${CWARNING}This system has at least two free disk, You must manually mount it${CEND}"; exit 0; }
  fi
}
# check os
check_os() {
  os_release=$(grep "Aliyun Linux release" /etc/issue 2>/dev/null)
  os_release_2=$(grep "Aliyun Linux release" /etc/aliyun-release 2>/dev/null)
  if [ "$os_release" ] && [ "$os_release_2" ];then
    if echo "$os_release" | grep "release 5" >/dev/null 2>&1;then
      os_release=aliyun5
      modify_env
    fi
  fi
}
# install ext4
modify_env() {
  modprobe ext4
  yum -y install e4fsprogs
}
# fdisk ,formating and create the file system
fdisk_fun() {
fdisk -S 56 $1 << EOF
n
p
1
wq
EOF
sleep 5
mkfs.ext4 ${1}1
}
# make directory
make_dir() {
  echo "${CMSG}Step 4.Begin to make directory${CEND}"
  [ -d "$MOUNT_DIR" ] && mv ${MOUNT_DIR}{,_bk}
  mkdir -p $MOUNT_DIR
  echo "$MOUNT_DIR" >> $TMP1
}
# config /etc/fstab and mount device
main() {
  for i in `echo $DISK_LIST`
  do
    echo
    echo "${CMSG}Step 3.Begin to fdisk free disk${CEND}"
    [ -n "`df -h | grep ${i}1`" ] && { echo "${CFAILURE}The ${i}1 already mount${CEND}"; echo; exit 0; }
    fdisk_fun $i > /dev/null 2>&1
    echo
    echo "${i}1" >> $TMP2
  done
  make_dir
  > $LOCKfile
  paste $TMP2 $TMP1 > $LOCKfile
  echo
  echo "${CMSG}Step 5.Begin to write configuration to /etc/fstab and mount device${CEND}"
  while read a b
  do
    [ -z "`grep ^${a} $FSTAB_FILE`" -a -z "`grep ${b} $FSTAB_FILE`" ] && echo "${a} $b   ext4  defaults   0 0" >> $FSTAB_FILE
  done < $LOCKfile
  mount -a
  echo
}
# start script
echo "${CMSG}Step 2.Begin to check free disk${CEND}"
#service mysqld stop
#mv /data /root
check_os
check_disk
main
df -h
#mv /root/data/* /data
#service mysqld start
rm -rf $LOCKfile $TMP1 $TMP2

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Linux  # 自动分区、格式化、挂载脚本  # 自动分区、格式化、挂载脚本详解  # XenServer 虚拟机扩容LVM磁盘分区的方法  # linux大于2T的磁盘使用GPT分区的方法分享  # linux如何无损调整分区大小  # linux下查看swap分区被哪些进程占用实现脚本  # linux文件系统调整大小的方法(linux调整分区大小)  # Linux下挂载硬盘分区的几种方法  # 详解Centos/Linux下调整分区大小(以home和根分区为例)  # 如何解决Linux系统下Docker占满分区的问题  # 详解Linux 虚拟机根分区磁盘扩充空间记录  # Linux中对lvm逻辑卷分区大小的调整教程(针对xfs与ext4不同文件系统)  # 对其  # 希望能  # 谢谢大家  # 并能  # 什么问题  # 解决了  # 一键式  # dev  # null  # cmd  # break  # fi  # CSI  # qE  # amp  # continue  # grep  # echo  # sbin  # clear 


相关文章: 如何选择高效可靠的多用户建站源码资源?  建站主机无法访问?如何排查域名与服务器问题  建站之星展会模版如何一键下载生成?  如何在云虚拟主机上快速搭建个人网站?  上海网站制作开发公司,上海买房比较好的网站有哪些?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  大连网站制作公司哪家好一点,大连买房网站哪个好?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  如何解决ASP生成WAP建站中文乱码问题?  魔方云NAT建站如何实现端口转发?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  如何通过云梦建站系统实现SEO快速优化?  建站主机核心功能解析:服务器选择与网站搭建流程指南  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  盐城做公司网站,江苏电子版退休证办理流程?  C#怎么创建控制台应用 C# Console App项目创建方法  如何做网站制作流程,*游戏网站怎么搭建?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  如何在阿里云ECS服务器部署织梦CMS网站?  ,制作一个手机app网站要多少钱?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何选择可靠的免备案建站服务器?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  广州商城建站系统开发成本与周期如何控制?  简单实现Android文件上传  济南网站制作的价格,历城一职专官方网站?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  建站上传速度慢?如何优化加速网站加载效率?  建站之星备案是否影响网站上线时间?  制作销售网站教学视频,销售网站有哪些?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  建站之星伪静态规则如何正确配置?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  长沙做网站要多少钱,长沙国安网络怎么样?    制作网站的公司有哪些,做一个公司网站要多少钱?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  平台云上自助建站如何快速打造专业网站?  python的本地网站制作,如何创建本地站点?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  如何选择适合PHP云建站的开源框架?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  孙琪峥织梦建站教程如何优化数据库安全?  如何彻底删除建站之星生成的Banner?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  如何在Windows环境下新建FTP站点并设置权限?  深圳网站制作案例,网页的相关名词有哪些?  TestNG的testng.xml配置文件怎么写  建站之星如何取消后台验证码生成? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。