shell之lvm
#!/bin/bash
#this script for LVM
echo "Initial a disk..."
echo -e "\033[31mWarning: \033[0m"
fdisk -l | grep -o "^Disk /dev/[sv]d[a-z]"
read -p "What's disk Your choice:" DISK
if [ "$DISK" == 'quit' ] || [ "$DISK" == 'q' ]; then
echo "quit"
exit 7
fi
######################Check input ################################
until fdisk -l | grep -o "^Disk /dev/[sv]d[a-z]" | grep "^Disk $DISK$" &> /dev/null;do
read -p "Wrong option,your choice again:" DISK
if [ $DISK == quit ] ; then
echo "quit"
exit 7
fi
done
########################Check mount#############################
if mount | grep "$DISK" &> /dev/null;then
echo `mount | grep "^$DISK" | awk '{print $1}'` is busy
read -p "Will you continue?" CHOICE
until [ $CHOICE == 'y' -o $CHOICE == 'n' ] ; do
read -p "wrong choice ,please try again:" CHOICE
done
if [ $CHOICE == 'n' ] ;then
echo "$DISK is busy,initial disk stop..."
exit 9
else
for I in `mount | grep "$DISK" | awk '{print $1}'`;do
fuser -km $I
umount $I
echo "$I umount ok"
done
######################Continue building disk?##########################
read -p "will destroy all data, continue?" CHOICE
until [ $CHOICE == 'y' -o $CHOICE == 'n' ] ; do
read -p "wrong choice ,please try again:" CHOICE
done
if [ $CHOICE == 'n' ] ;then
echo "$DISK have exist data,initial disk stop..."
exit 9
else
dd if=/dev/zero of=$DISK bs=512 count=1
sync
sleep 3
#######################fdisk $DISK##############################
echo 'n
p
1
t
8e
w' | fdisk -cu $DISK &> /dev/null
sleep 2
fi
fi
else
echo 'n
p
1
t
8e
w' | fdisk -cu $DISK &> /dev/null
sleep 2
fi
#####################initial disk ####################################
read -p "Do you want to initial? " INITIAL
{
[ $INITIAL == Y ] || [ $INITIAL == y ] || [ $INITIAL == 'YES' ] || [ $INITIAL == 'yes' ]
} && {
read -p "Please input vg_disk: " VG_DISK
read -p "Please input lv_disk: " LV_DISK
read -p "Please input lvs_disk's size: " LVS_SIZE
read -p "Please input File system type: " LVS_TYPE
pvcreate ${DISK}1 >/dev/null 2>&1
vgcreate $VG_DISK ${DISK}1 > /dev/null 2>&1
lvcreate -L $LVS_SIZE -n $LV_DISK $VG_DISK > /dev/null 2>&1
mkfs.$LVS_TYPE /dev/$VG_DISK/$LV_DISK > /dev/null 2>&1
##########################mount disk###################################
read -p "Do you want to mount now: " LVS_MOUNT
{
[ $LVS_MOUNT == Y ] || [ $LVS_MOUNT == y ] || [ $LVS_MOUNT == 'YES' ] || [ $LVS_MOUNT == 'yes' ]
} && {
read -p "Please input mount point: " LVS_POINT
[ -d ${LVS_POINT} ] || mkdir -p ${LVS_POINT}
echo "/dev/$VG_DISK/$LV_DISK ${LVS_POINT} $LVS_TYPE defaults 0 0 " >> /etc/fstab
mount -a
} || exit
} || exit
shell之lvm的更多相关文章
- 第五周-磁盘分区GPT、shell脚本练习、lvm详解
1. 描述GPT是什么,应该怎么使用 Linux中磁盘分区分为MBR和GPT. MBR全称为Master Boot Record,为主引导记录,是传统的分区机制,应用于绝大多数使用的BIOS的PC设备 ...
- shell脚本编程进阶及RAID和LVM应用1
bash脚本编程 脚本文件格式: 第一行,顶格写: #!/bin/bash 注释行:#开头 代码注释:写清楚注释 规范写脚本:适度缩进,添加空白行 编程语言:有编程语法格式,库,算法和数据结构 编程思 ...
- 记录 shell学习过程(1) 超简单的面向过程的2个shell 分区以及创建lvm
分区 #!/usr/bin/env bash #fdisk /dev/sdb << EOF #n # # # #+600M #w #EOF 创建lvm pvcreate /dev/sdb ...
- shell脚本编程进阶及RAID和LVM应用2
文件测试 存在性测试 -a FILE 这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用 -e FILE 文件的存在性测试,存在则为真,否则为假 例:~]# [ -e /etc/rc.d/ ...
- Centos文本方式安装情况下lvm分区的创建
作者:马 岩(Furzoom) (http://www.cnblogs.com/furzoom/)版权声明:本文的版权归作者与博客园共同所有.转载时请在明显地方注明本文的详细链接,未经作者同意请不要删 ...
- Creating LVM Logical Volumes
LVM-Logical Volume Manager逻辑卷管理的一些基本概念: 用途: 在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区.当系统添加了新的磁盘,通 ...
- Linux下添加磁盘创建lvm分区
shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...
- shell手册--笨鸟杰作
==================================================================================================== ...
- linux + shell 命令等
Linux命令[注意:建议用UltraEdit打开] 一.文件处理命令 1.命令格式与目录处理命令 ls –a[查看隐藏文件] ls –l[查看文件信息长格式显示] ls –d[查看指定目录的详细信息 ...
随机推荐
- Fatal error: Call to undefined function fnmatch() 解决
我的PHP版本是5.6.30,linux 是CentOS 6.6,nginx,也不知啥问题,看了官方: https://secure.php.net/manual/en/function.fnmatc ...
- antd Grid
import { Row, Col } from 'antd'; <Row type="flex" //内容布局(左靠齐,右靠齐,居中) justify="star ...
- System IPC 与Posix IPC(msg消息对列)
系统消息队列: 一.消息队列基本概念 系统V消息队列是随内核持续的,只有在内核重起或者显示删除一个消息队列时,该消息队列才会真正被删除.因此系统中记录消息队列的数据结构(struct ipc_ids ...
- luogu P3950 部落冲突
嘟嘟嘟 树剖板子题. #include<cstdio> #include<iostream> #include<algorithm> #include<cma ...
- Windows彻底卸载系统自带的office
由于自带office导致按照新的office会提示要先卸载原来32位的office,又在控制面板或软件管理工具中找不到office,用如下方法删除 1.在C盘删除office文件夹 2.删除注册表 1 ...
- tp3.2中的 I () 方法
I('get.id'); // 相当于 $_GET['id']
- HDU 2018 Multi-University Training Contest 1 Triangle Partition 【YY】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6300 Triangle Partition Time Limit: 2000/1000 MS (Java ...
- AAAI 2016 paper阅读
本篇文章调研一些感兴趣的AAAI 2016 papers.科研要多读paper!!! Learning to Generate Posters of Scientific Papers,Yuting ...
- 使用libcurl下载文件小例
libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP……一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要 ...
- Mac--查看公钥
打开macbook的终端输入以下命令: $ cd ~/.ssh $ ls $ cat id_rsa.pub