知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
shell腳本自動(dòng)分區(qū)、創(chuàng)建邏輯卷
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):57
#!/bin/bash
# vim:et:ts=4:sw=4:
<<INFO
SCRIPYT:autodiskmount.sh
AUTHOR:anqixiang
DATE:2020-10-18
DESCRIBE:把磁盤(pán)分為一個(gè)區(qū),并做邏輯卷
SYSTEM:CentOS 7、RedHat 7、Ubuntu16/18
WARNING:LV_NAME、DISK_CAP、MOUNT_DIR三個(gè)數(shù)組的元素個(gè)數(shù)需一致
VERSION:1.1.0
MODIFY:
INFO
set -e
cecho(){
echo -e "\033[$1m$2\033[0m"
}
#定義邏輯卷的相干參數(shù)
VG_NAME="data" #卷組名
LV_NAME=(${VG_NAME}_app ${VG_NAME}_mysql) #以數(shù)組的情勢(shì)存儲(chǔ)邏輯卷名字
DISK_CAP=(30% 70%) #代表第一個(gè)邏輯卷占30%磁盤(pán)空間,第二個(gè)占70%
MOUNT_DIR=(/data/app /data/mysql) #邏輯卷的掛載路徑
######################功能函數(shù)######################
#檢測(cè)磁盤(pán)
Check_Disk()
{
local disk_num=$(fdisk -l |grep "${DISK_NMAE}" |wc -l)
if [ ${disk_num} -eq 0 ];then
cecho 31 "${DISK_NMAE}不存在" && exit 1
elif [ ${disk_num} -gt 1 ];then
cecho 31 "${DISK_NMAE}已分區(qū),請(qǐng)先格局化" && exit 1
fi
cecho 32 "#分區(qū)磁盤(pán)為:${DISK_NMAE}"
}
#磁盤(pán)分區(qū)
Divi_Disk()
{
fdisk ${DISK_NMAE} << EOF
n
p
1
wq
EOF
fdisk -l |grep "${DISK_NMAE}"
}
#創(chuàng)建邏輯卷
Create_Lvm()
{
#創(chuàng)建卷組
if ! vgs | grep -w "${VG_NAME}" >/dev/null;then
vgcreate "${VG_NAME}" "${DISK_NMAE}1"
fi
#創(chuàng)建邏輯卷
for((i=0;i<${#LV_NAME[@]};i++))
do
if ! lvs | grep -w "${LV_NAME[i]}" >/dev/null;then
lvcreate -n ${LV_NAME[i]} -l ${DISK_CAP[i]}VG ${VG_NAME} -y
mkfs.ext4 /dev/${VG_NAME}/${LV_NAME[i]} >/dev/null
fi
done
lvs
}
#掛載邏輯卷
Mount_Lvm()
{
for((i=0;i<${#MOUNT_DIR[@]};i++))
do
[ ! -d ${MOUNT_DIR[i]} ] && mkdir -pv ${MOUNT_DIR[i]}
local uuid=$(blkid | grep "${LV_NAME[i]}" |awk '{print $2}')
[ ! -f /etc/fstab.bak ] && cp /etc/fstab{,.bak}
sed -ri "s#(.*)${MOUNT_DIR[i]}(.*)##" /etc/fstab #防止多次寫(xiě)入雷同的掛載內(nèi)容
echo "${uuid} ${MOUNT_DIR[i]} ext4 defaults 0 0" >> /etc/fstab
done
sed -i '/^$/d' /etc/fstab
mount -a
cecho 96 "邏輯卷創(chuàng)建成功"
}
#卸載邏輯卷
Umount_Lvm()
{
for((i=0;i<${#MOUNT_DIR[@]};i++))
do
df -h |grep -w "${MOUNT_DIR[i]}" && umount ${MOUNT_DIR[i]}
[ -d ${MOUNT_DIR[i]} ] && rm -rf ${MOUNT_DIR[i]}
if lvs | grep -w "${LV_NAME[i]}" >/dev/null;then
lvremove -f /dev/${VG_NAME}/${LV_NAME[i]}
fi
sed -ri "s#(.*)${MOUNT_DIR[i]}(.*)##" /etc/fstab
done
if vgs | grep -w "${VG_NAME}" >/dev/null;then
vgremove ${VG_NAME}
fi
sed -i '/^$/d' /etc/fstab
mount -a
#刪除磁盤(pán)分區(qū)
fdisk ${DISK_NMAE} << EOF
d
w
EOF
lsblk
cecho 96 "邏輯卷卸載成功"
}
#贊助信息
Help(){
cat << EOF
Usage:
=======================================================================
EXAMPLE:
bash autodiskmount.sh mount #創(chuàng)建邏輯卷
bash autodiskmount.sh umount #卸載邏輯卷
EOF
}
######################主函數(shù)######################
[ "$#" -ne 2 ] && Help && exit 1
DISK_NMAE=$1
if [ "x$2" == "xmount" ];then
Check_Disk
Divi_Disk
Create_Lvm
Mount_Lvm
elif [ "x$2" == "xumount" ];then
Umount_Lvm
else
Help && exit 1
fi
set +e
相關(guān)案例查看更多
相關(guān)閱讀
- 云南小程序開(kāi)發(fā)費(fèi)用
- asp網(wǎng)站
- 云南小程序被騙
- 汽車(chē)拆解管理系統(tǒng)
- 微信分銷(xiāo)
- 云南科技公司
- 網(wǎng)絡(luò)公司哪家好
- 云南建設(shè)廳官方網(wǎng)站
- 服務(wù)器
- 云南網(wǎng)站優(yōu)化公司
- 買(mǎi)小程序被騙
- 百度小程序開(kāi)發(fā)
- 安家微信小程序
- 云南花農(nóng)小程序
- flex
- 網(wǎng)站建設(shè)公司網(wǎng)站
- 網(wǎng)站建設(shè)電話
- 軟件定制
- 云南軟件定制公司
- 迪慶小程序開(kāi)發(fā)
- 公眾號(hào)模板消息
- 跳轉(zhuǎn)小程序
- 云南小程序制作
- 云南網(wǎng)站開(kāi)發(fā)哪家好
- 麗江小程序開(kāi)發(fā)
- 小程序的開(kāi)發(fā)公司
- 百度小程序開(kāi)發(fā)公司
- 網(wǎng)站上首頁(yè)
- 網(wǎng)站優(yōu)化
- 云南小程序開(kāi)發(fā)公司