1. LVM
- Logical Volumn Manager : 논리 하드디스크 관리자
- 여러개의 하드디스크를 한 개의 파티션으로 구성한 후 다시 필요에 따라 나누는 것
-- Server 에서 스냅샷 raid6+10 추가
(테스트 예제)
하드디스크 2GB /single, 하드디스크 3GB /single 로 추가한 후 부팅 ▶ ls -l /dev/sd* 장치 확인
fdisk /dev/sdb ▶
Command : n ▶ Select : p ▶ Partition number : 1 ▶ First sector : enter ▶ Last sector : enter ▶ Command : t ▶ Hax code : 8e ▶ Command : p ▶ Command : w
fdisk /dev/sdc ▶ Command : n ▶ Select : p ▶ Partition number : 1 ▶ First sector : enter ▶ Last sector : enter ▶ Command : t ▶ Hax code : 8e ▶ Command : p ▶ Command : w
▶ ls -l /dev/sd* 로 확인 ▶ apt -y install lvm2 설치 ▶ pvcreate /dev/sdb1 ▶ pvcreate /dev/sdc1 ▶
vgcreate myLG /dev/sdb1 /dev/sdc1 (하나로 묶기) ▶ vgdisplay (확인) ▶ lvcreate --size 1G --name myLG1 myLG
▶ lvcreate --size 3G --name myLG2 myLG ▶ lvcreate --extents 100%FREE --name myLG3 myLG ▶ ls -l /dev/myLG로 확인 ▶ mkfs.ext4 /dev/myLG/myLG1 ▶ mkfs.ext4 /dev/myLG/myLG2 ▶ mkfs.ext4 /dev/myLG/myLG3 ▶ kdir /lvm1 ▶ mkdir /lvm2 ▶ mkdir /lvm3 ▶ mount /dev/myLG/myLG1 /lvm1 ▶ mount /dev/myLG/myLG2 /lvm2 ▶
mount /dev/myLG/myLG3 /lvm3 ▶ df 로 확인 ▶ nano /etc/fstab
▶ /dev/myLG/myLG1 /lvm1 ext4 defaults 0 0
/dev/myLG/myLG2 /lvm2 ext4 defaults 0 0
/dev/myLG/myLG3 /lvm3 ext4 defaults 0 0
▶ reboot
(테스트 예제) - server-b에 하드디스크 4GB, 5GB 추가하고 LVM으로 3G씩 나누기
ls -l /dev/sd* 장치 확인
fdisk /dev/sdb ▶ Command : n ▶ Select : p ▶ Partition number : 1 ▶ First sector : enter ▶ Last sector : enter ▶ Command : t ▶ Hax code : 8e ▶ Command : p ▶ Command : w
fdisk /dev/sdc ▶ Command : n ▶ Select : p ▶ Partition number : 1 ▶ First sector : enter ▶ Last sector : enter ▶ Command : t ▶ Hax code : 8e ▶ Command : p ▶ Command : w
▶ ls -l /dev/sd* 로 확인 ▶ apt -y install lvm2 설치 ▶ pvcreate /dev/sdb1 ▶ pvcreate /dev/sdc1 ▶ vgcreate myLG /dev/sdb1 /dev/sdc1(하나로 묶기) ▶ vgdisplay 확인 ▶ lvcreate --size 3G --name myLG1 myLG ▶ lvcreate --size 3G --name myLG2 myLG ▶ lvcreate --extents 100%FREE --name myLG3 myLG ▶ ls -l /dev/myLG로 확인 ▶ mkfs.ext4 /dev/myLG/myLG1 ▶ mkfs.ext4 /dev/myLG/myLG2 ▶ mkfs.ext4 /dev/myLG/myLG3 ▶ mkdir /lvm1 ▶ mkdir /lvm2 ▶ mkdir /lvm3 ▶ mount /dev/myLG/myLG1 /lvm1 ▶ mount /dev/myLG/myLG2 /lvm2 ▶ mount /dev/myLG/myLG3 /lvm3 ▶ df 로 확인 ▶ nano /etc/fstab
▶ /dev/myLG/myLG1 /lvm1 ext4 defaults 0 0
/dev/myLG/myLG2 /lvm2 ext4 defaults 0 0
/dev/myLG/myLG3 /lvm3 ext4 defaults 0 0
▶ reboot
2. 계정별 디스크 설정
(테스트예제) 하드디스크에 사용자 두명에 대한 디스크 설정
하드디스크 10기가 추가 ▶ ls -l /dev/sd* 장치 확인
▶ fdisk /dev/sdb ▶ Command : n ▶ Select : p ▶ Partition number : 1 ▶ First sector : enter ▶ Last sector : enter ▶ Command : p ▶ Command : w ▶ mkfs.ext4 /dev/sdb1 ▶ mkdir /userHome ▶ mount /dev/sdb1 /userHome ▶ df 확인 ▶ gedit /edt/fstab ▶ /dev/sdb1 /userHome ext4 defaults 0 0 입력 ▶ reboot
루트 ▶ adduser --home /userHome/aaa aaa ▶ 비밀번호 a1234 ▶ 이름/방번호/전화번호/기타 enter ▶ y
루트 ▶ adduser --home /userHome/bbb bbb ▶ 비밀번호 a1234 ▶ 이름/방번호/전화번호/기타 enter ▶ y
▶ gedit /etc/fstab ▶ /dev/sdb1 /userHome ext4 defaults,usrjquota=aquota.user,jqfmt=vfsv0 0 0 으로 수정 ▶ mount -option remount /userHome (새로 설정한 값으로 마운트) ▶ apt -y install quota ▶ cd /userHome ▶ quotaoff -avug (쿼터를 끄는 작업) ▶ quotacheck -augmn (확인) ▶ rm -f aquota.* (쿼터 관련 파일 삭제) ▶ quotacheck -augmn (확인) ▶ touch aquota.user aquota.group (쿼터 관련 파일 생성) ▶ chmod 600 aquota.* (권한 부여) ▶ qutacheck -augmn (확인) ▶ quotaon -avug 쿼터 켜기 (turned on 안되면 reboot)
▶ edquota -u aaa 사용자 aaa 에게 하드디스크 용량 할당하는 에디터 열기)
- blocks 부분은 파일 용량 (0이면 무한대)
- soft 는 quota까지만 쓸 수 있음
- hard는 limit 까지 쓸 수는 있으나 grace 기간 만큼 quota만큼까지 용량을 정리해야함
- inodes 부분은 파일의 개수 (0이면 무한대)
▶ blocks soft 30720 입력, hard 40960 입력 후 저장 ▶ chmod 644 /boot/vmlinuz-6.8.0-38-generic 파일 권한 변경 ▶
su - aaa 계정을 aaa로 사용자 전환 ▶ cp /boot/vmlinuz-6.8.0-38-generic test1 (test1이라는 이름으로 위의 파일 복사)
cp /boot/vmlinuz-6.8.0-38-generic test2 (test2이라는 이름으로 위의 파일 복사) ▶ cp /boot/vmlinuz-6.8.0-38-generic test3 (test3이라는 이름으로 위의 파일 복사) ▶ 디스크 할당량이 초과되었다는 에러메세지 뜸 ▶ ls - l 로 확인해보면 test3 파일이 용량을 다 채우지 못하고 도중에 멈춘걸로 확인됨 ▶ quota 치면 확인 가능 ▶ exit ▶
repquota /userHome 입력하면 사용자별로 용량 설정 확인 가능
3. 쉘
1) 환경변수
gedit name.sh ▶
#!/bin/sh
echo "사용자 이름 : " $USER
echo "홈 디렉토리 : " $HOME
exit 0
▶ ls -l 해보면 name.sh 파일을 확인해보면 읽고 쓰고는 되는데 실행하는 권한이 없음 ▶ chmod +x name.sh
▶ ls -l 해보면 권한 추가됨 ▶ ./name.sh
* 실행하는 방법
1) sh name.sh
2) ./name.sh
2) 변수선언
testval=Hello (변수 선언 - 공백 금지)
echo $testval (Hello 출력)
testval="hello 철수"
echo $testval (hello 철수 출력)
testval=7+5
echo $testval (7+5 출력)
nano var1.sh ▶
#!/bin/sh
myvar="Hi linux"
echo $myvar
echo "$myvar"
echo '$myvar'
echo \$myvar
echo 값 입력 :
read myvar
echo '$myvar = '$myvar
exit 0
▶ sh var1.sh(실행) ▶
Hi linux
Hi linux
$myvar
$myvar
값 입력 :
linux
$myvar = linux
3) 연산
nano var2.sh ▶
#!/bin/sh
num1=100
num2=$num1+200
echo $num2
exit 0
▶ sh var2.sh
▶ 100+200 으로 출력
#!/bin/sh
num1=100
num2=$num1+200
echo $num2
num3=`expr $num1 + 200`
echo $num3
exit 0
▶ 100+200 <br> 300 으로 출력
▶ 연산을 하기 위해서는 수식을 ``로 묶어야함
#!/bin/sh
num1=100
num2=$num1+200
echo $num2
num3=`expr $num1 + 200`
echo $num3
num4=`expr \( $num1 + 200 \) / 10 \* 2`
echo $num4
exit 0
▶ 100+200 <br> 300 <br> 60 으로 출력
▶ 괄호와 * 앞에는 \를 넣어줘야함
4) 파라미터
nano var3.sh ▶
#!/bin/sh
echo "실행파일 이름은 <$0> 입니다."
echo "첫번째 파라미터는 <$1> 이고,"
echo "두번째 파라미터는 <$2> 입니다."
echo "전체 파라미터는 <$*> 입니다."
exit 0
▶ sh var3.sh aaa bbb ccc ▶
실행파일 이름은 <var3.sh> 입니다.
첫번째 파라미터는 <aaa> 이고,
두번째 파라미터는 <bbb> 입니다.
전체 파라미터는 <aaa bbb ccc> 입니다.
* sh var3.sh * 하면 모든 파라미터 다들어감
5) if문
if [ 조건 ] -- 공백 필수
then
참일 경우
else
거짓일 경우
fi
(테스트 예제)
nano if1.sh ▶
#!/bin/sh
if [ "kg" = "kg" ]
then
echo "참입니다."
fi
exit 0
▶ sh if1.sh ▶ 참입니다. 출력
(테스트 예제)
nano if2.sh ▶
#!/bin/sh
if [ "kg" != "kg" ]
then
echo "같지않다"
else
echo "같다"
fi
exit 0
▶ sh if1.sh ▶ 같다 출력
'KDT - 풀스택 개발 과정 > LINUX' 카테고리의 다른 글
[DAY_53] LINUX - SSH, nslookup, 네임서버, 웹서버 (0) | 2024.07.25 |
---|---|
[DAY_52] LINUX - 비교연산자, 다중분기문, 반복문, 사용자정의함수 (0) | 2024.07.24 |
[DAY_50] LINUX 링크, 파일 설치, 압축/묶기, 파일 찾기, 예약작업, 네트워크, 하드디스크 (0) | 2024.07.22 |
[DAY_49] LINUX 설치 및 세팅 (0) | 2024.07.18 |