스토리지 서버의 디스크 서비스 투입 전 기본적인 세팅 자동화 스크립트
[ Big Structure ]
parted 커맨드 사용 가능한 환경인지 확인하기 위해 parted 설치 여부 확인하고, 설치되어있는 경우 자동화 작업 진행, 안되어있는 경우 사용자에게 경고 문구 출력
[ Automation Work ]
1. 데이터 전용 디스크 대상으로 (스크립트 상애서는 sdb~sdak에 해당) 재파티션 진행
2. 대상 디스크 포맷
3. 대상 디스크 예약블록삭제
4. 대상 디스크 마운트될 디렉토리 생성
5. 대상 디스크 마운트
6. 대상 디스크 디렉토리 소유자 변경
#!/bin/bash
# Installed Parted Checking
if [ "`rpm -qa |grep parted |wc -l`" -ge 1 ];then
echo "parted Starting accepted!
Working..."
# Disk Repartition
for i in {b..z};do parted --script /dev/sd$i mklabel gpt mkpart primary ext4 1049kb 100%;done
for i in {a..k};do parted --script /dev/sda$i mklabel gpt mkpart primary ext4 1049kb 100%;done
# Disk Format
for i in {b..z};do echo $i;mkfs.ext4 /dev/sd$i"1";done
for i in {a..k};do echo $i;mkfs.ext4 /dev/sda$i"1";done
# Change Disk's Reserved Blocks Setting To 0
for i in {b..z};do echo $i;tune2fs -m 0 /dev/sd$i;done
for i in {a..k};do echo $i;tune2fs -m 0 /dev/sda$i;done
# Making Directories
for i in {1...9};do echo $i;mkdir -p /data0$i/dfs/data;done
for i in {10...36};do echo $i;mkdir -p /data$i/dfs/data;done
######## Mounting Disk ########
declare -A target
num=1
### Making Target disk dictionary
for i in {b..j};do
target[$i]=0$num
num=$(expr $num + 1)
done
for i in {k..z};do
target[$i]=$num
num=$(expr $num + 1)
done
for i in {a..k};do
target[a$i]=$num
num=$(expr $num + 1)
done
### Mounting Target_disk
for key in ${!target[@]};do
#echo ${key} ${target[${key}]}
mount /dev/sd${key}"1" /data${target[$key]}
done
### Changing Owner of ditectories
for key ${!target[@]};do
chown -R hdfsnnuser: /data${target[$key]}
done
else
echo "Error : you need to yum install parted"
fi
====================================================
#!/bin/bash
# Installed Parted Checking
if [ "`rpm -qa |grep parted |wc -l`" -ge 1 ];then
echo "parted Starting accepted!
Working..."
# Disk Repartition
for i in {b..z};do parted --script /dev/sd$i mklabel gpt mkpart primary ext4 1049kb 100%;done
for i in {a..k};do parted --script /dev/sda$i mklabel gpt mkpart primary ext4 1049kb 100%;done
# Disk Format
for i in {b..z};do echo $i;mkfs.ext4 /dev/sd$i"1";done
for i in {a..k};do echo $i;mkfs.ext4 /dev/sda$i"1";done
# Change Disk's Reserved Blocks Setting To 0
for i in {b..z};do echo $i;tune2fs -m 0 /dev/sd$i;done
for i in {a..k};do echo $i;tune2fs -m 0 /dev/sda$i;done
# Making Directories
for i in {1...9};do echo $i;mkdir -p /data0$i/dfs/data;done
for i in {10...36};do echo $i;mkdir -p /data$i/dfs/data;done
######## Mounting Disk ########
declare -A target
num=1
### Making Target disk dictionary
for i in {b..j};do
target[$i]=0$num
num=$(expr $num + 1)
done
for i in {k..z};do
target[$i]=$num
num=$(expr $num + 1)
done
for i in {a..k};do
target[a$i]=$num
num=$(expr $num + 1)
done
### Mounting Target_disk
for key in ${!target[@]};do
#echo ${key} ${target[${key}]}
mount /dev/sd${key}"1" /data${target[$key]}
done
### Changing Owner of ditectories
for key ${!target[@]};do
chown -R hdfsnnuser: /data${target[$key]}
done
else
echo "Error : you need to yum install parted"
fi
====================================================
'Development > Shell script' 카테고리의 다른 글
[Shell Script] 데몬 start 및 stop 스크립트 작성 예시 (0) | 2020.01.08 |
---|---|
[Shell Script] 현재 시간 정보 가져오기 (0) | 2020.01.06 |
[Shell Script] 유용한 Linux 명령어 활용 예시 : -F와 NR 활용 (0) | 2019.08.08 |
[Linux][Shell Script] daemon start & stop script 예시 (25) | 2019.07.23 |
[Linux][Shell script] while / for 예시, 조건문 -f / -d (27) | 2019.07.23 |