정보통신공학과 노선변경기
리눅스 관리 4일차 systemd systemctl 부트프로세스 네트워크관리(nmcli) 본문
3일차 실습해설, 간략설명
구성순서, 방식
fdisk make filesystem mount permanent mount(/etc/fstab)
swap 영역구성 fdisk mkswap swapon 장치 swap swap defaults 0 0
기본 파일시스템 구성 fdisk mkfs mount
장치 마운트디렉토리 파일형식지정 defaults 0 0
알면좋은 Hex code: 83=Linux, 82=Linux swap, 8e=Linux LVM
*3일차 실습해설
*****************************실습***********************
1. VM 디스크 1을 제외한 모든 디스크를 제거 하시오
2. VM 디스크 2 (10G) 를 생성하시오.
3. 다음 사양을 적용 할수 있도록 적당히 파티셔닝 하고 마운트 하시오
- swap 메모리를 500M 확장 하시오(파티셔닝 방법)
- ext4 2G /tmp/test1 에 마운트 되는 파일시스템 생성(논리볼륨 아님)
- xfs 1G /tmp/test1 에 마운트 되는 파일시스템 생성(논리볼륨아님)
- 다음과 같은 논리 볼륨을 생성하시오
- 3G, 2G pv -> vgname 인 논리 볼륨그룹 생성
- /vgname/lvname1 1G (ext4 /mnt/lv1 )
- /vgname/lvname2 2G (xfs /mnt/lv2 )
-lvname1 을 1.5G로 확장하시오.
모든 내용은 재부팅 후에도 설정이 유지 되어야 한다.
********************************************************************
<강사님 풀이> (명령어에 sudo 권한으로..)
10G 디스크 추가
fdisk 들어가서..
주파티션 1 +500M, 주파티션2 +2G, 주파티션3 +1G, 확장 파티션으로 전부지정
확장1 +3G (type 8e(LVM)), 확장2 +2G(type 8e(LVM))
1.Swap 메모리 만들기
mkswap /dev/vdb1
swapon /dev/vdb1
2.파일시스템 두개 만들기
mkdir /tmp/test1
mkdir /tmp/test2
mkfs.ext4 /dev/vdb2
mkfs.xfs /dev/vdb3
lsblk -f 로 확인
파일시스템 형성되면 그 때 UUID값이 생성된다.
mount /dev/vdb2 /tmp/test1
mount /dev/vdb3 /tmp/test2
3.논리볼륨 나누기
pvcreate /dev/vdb5
pvcreate /dev/vdb6
pvdisplay
vgcreate vgname /dev/vdb5 -s 16M
그룹이름 vgname으로 해주고 물리볼륨 합쳐주기, PE 16M으로 임의지정함
vgextend > 볼륨그룹에 피시컬볼륨 추가
vgextend vgname /dev/vdb6 -s 16M
lvcreate vgname -n lvname1 -L 1G
lvcreate vgname -n lvname2 -L 2G
lvdisplay
mkfs.ext4 /dev/vgname/lvname1
mkfs.xfs /dev/vgname/lvname2
mkdir /mnt/lv1
mkdir /mnt/lv2
mount /dev/vgname/lvname1 /mnt/lv1
mount /dev/vgname/lvname2 /mnt/lv2
lsblk -f 로 확인
4. 영구마운트..
/etc/fstab에서 작성 swap: 장치 swap swap defaults 0 0
파티션 지정: 장치 마운트디렉 파일형식 defaults 0 0
5.논리볼륨확장
lvextend -L 1.5G /dev/vgname/lvname1 -r
*시스템
**systemd > 실행시 최초로 돌아가는 프로그램, 데몬프로그램
돌아가는 도중에는 제어할 수 없다.
예전에 사용하던것 > init
init: 직렬 실행, 순차적으로 실행, 쉘 스크립트 기반으로 동작
/etc/inittab에 실행시 시작할 run level 저장
스크립트가 동작하면서 시스템 관리
/etc/init.d/에 스크립트 저장되어있음
/etc/rc?.d 에 해당 run level로 지정할 시 실행되는 프로그램 저장
systemd: 병렬 실행 > 서비스들간의 종속성 존재, target 이 데몬 하위
unit 단위로 서비스를 관리한다.
서비스유닛 = http, ssh, ftp
소켓유닛 = 프로세스간의 통신을 위해 생성
target 유닛 = 부팅시 필요한거 저장
*init_test.sh의 status확인, start해보기
sudo vi /usr/bin/unit_test.sh
#!/bin/bash
echo "start unit test"
while (( 1 ))
do
echo "hi test.sh"
sleep 3
done
chmod +x /usr/bin/unit_test.sh
sudo chmod +x /usr/bin/unit_test.sh
ls -al /usr/bin/unit_test.sh
/usr/bin/unit_test.sh
*유닛생성
sudo vi /etc/systemd/system/unit_test.service
에다가 작성
[Unit]
Description=unit test systemd service
[Service]
type=simple
ExecStart=/bin/bash /usr/bin/unit_test.sh
[Install]
WantedBy=multi-user.target
*systemctl 명령어
sudo yum install httpd
systemctl status httpd
systemctl start httpd
sudo firewall-cmd --add-service=http
systemctl start unit_test.service
systemctl list-units >> 동작중인 유닛 리스트 보여준다.
systemctl -t service list-units >> service type인 유닛만 확인 -t가 type지정
systemctl status 상태확인
systemctl start 실행
enable ⇒ 심볼릭 링크 생성
systemctl is-active httpd >> httpd 가 active상태인지 확인
systemctl stop 유닛 정지
systemctl restart 유닛 재시작
systemctl reload 설정 저장된 파일 수정해줄 때 reload 하면 서버가 돌고있는 상태에서 적용가능
systemctl mask ⇒ 실행안되게끔 잠시 격리
systemctl unmask 로 다시 서버복귀
******systemctl 실습*********
1. http 서비스의 실행 상태 확인
sudo systemctl status httpd
2. httpd 서비스를 활성화 시키시오
sudo systemctl enable httpd
3. httpd 서비스를 비활성화 시키시오
disable
4. httpd 서비스를 실행하시오
start
5. httpd 서비스를 중지 시키시오
stop
6. httpd 서비스를 마스크 상태로 만드시오
mask
7. httpd 서비스의 마스크를 해제 하시오
unmask
8. httpd 서비스를 시작한후 PID 확인, reload 후 PID확인
start 하고난 다음, reload한 다음은 같다. restart는 PID 바뀐다.
9. httpd 서비스를 재시작한후 PID 를 확인 하시오
10. sshd의 의존성을 확인하시오.
systemctl list-dependencies sshd
**********************************************************
*부트프로세스 교재 278p 주우우웅요
1.POST : power on self test
1.5. BIOS/UEFI
2.부트로더 메모리에 적재, grub2를 적재하여 가능한 커널 목록 출력
3.initrmfs 압축해제하여 /sysroot에 압축해제
4.필요한 파일을 메모리에 적재
5.default target
6.multi-user.target(다중사용자)
7.graphical.target(GUI)
*get-default = default target 확인 중요해!!!!!!!!!
default target > 처음에 선택되는 target
systemctl get-default
systemctl set-default <target-unit>
systemctl isolate <target-unit>
*root passwd 복구 중요해!!!!!!!!!
2.부트로더 메모리에 적재, grub2를 적재하여 가능한 커널 목록 출력
3.initrmfs 압축해제하여 /sysroot에 압축해제
커널선택창에서...
e
utf-8 옆에 rd.break
mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit
*네트워크관리.. 시험에 나온댜
부팅 -> IP/subnet, Gateway DNS 등 구성 후 접근가능 -> www.google.com
ip address = ip정보확인
ip a s == ip address show
sudo ip link set ens12 down => ens12 network down 시키는것
sudo ip link set ens12 up => 다시 ip 받아오게 하는것
sudo ip a add 192.168.122.100/24 dev ens12 => ip 주소 추가할당
sudo ip a del 192.168.122.90/24 dev ens12 => ip 주소 제거
ip route show => 라우팅 경로 확인
sudo ip route del default via 192.168.122.1 dev ens12 => 라우팅 삭제
sudo ip route add default via 192.168.122.1 dev ens12 => 라우팅 추가
/etc/resolv.conf 에서 vi로 nameserver 지정가능하다.(아무것도 없을 때 사용)
*NetworkManager
네트워크와 관련된 모든 설정을 관리하는 서비스
/etc/sysconfig/network-scripts 설정있는 파일
DHCP 서버가 보내주는 정보를 다시 작성해주면 된다.
DHCP 서버가 보내주는 것: IP/Subnetmask, gateway, dns
*네트워크 관리도구
(ip는 잘 안쓰는 명령어)
nmcli, nmtui 를 주로 쓴다 nmtui거의 안씀
**nmcli
profile 단위로 관리
nmcli con show 연결정보 보여준다.
ens12 ip: 192.168.122.100/24 , routing : 192.168.122.1
eth0 ip: 192.168.122.118/24
sudo nmcli con add con-name ens12-1 type ethernet ifname ens12
=> 새로운 인터페이스 생성
ens12 네트워크카드에 ens12-1 인터페이스를 추가, type은 ethernet으로
sudo nmcli connection down Wired\ connection\ 1 ens12 대신 ens12-1 올리기위해 down
혹은
nmcli connection up ens12-1 할 수 있다. = 명령어 치면 DHCP로부터 받아온다
sudo nmcli con delete Wired\ connection\ 1 커넥션 지우기
nmcli con show 로 확인가능
method 지정안해주면 gw, dns, 를 정해놔도 DHCP로 요청함(두번 일하는거잖아)
지정해주면 static으로 manual 받아옴
sudo nmcli con add con-name ens12-2 type ethernet ifname ens12
sudo nmcli con modify ens12-2 ipv4.addresses 192.168.122.200/24
sudo nmcli con modify ens12-2 ipv4.dns 8.8.8.8
sudo nmcli con modify ens12-2 ipv4.gateway 192.168.122.1
sudo nmcli con modify ens12-2 ipv4.method manual
sudo nmcli connection up ens12-2 ( sudo nmcli con up ens12-2)
nmcli con show
/etc/sysconfig/network-scripts/ifcfg-ens12-2 여기에 설정된거 있다 vi로 들어가서 확인 or cat
**********실습*************
1. network 인터페이스 카드를 추가 하세요
NAT
device model : e1000
다음 내용은 새로 추가한 인터페이스에 대한 내용입니다
(eth0 가 아님!)
인터페이스 명을 확인하세요
새로 추가된 인터페이스에게 고정된 아이피를 할당하세요
con-name : static200
ip : 192.168.122.10
prefix 24
dns : 8.8.8.8
gateway : 192.168.122.1
hostname : cccr2021
**************************************
ens13 인터페이스카드 추가
sudo nmcli con add con-name static200 type ethernet ifname ens13
sudo nmcli con modify static200 ipv4.addresses 192.168.122.10/24
sudo nmcli con modify static200 ipv4.gateway 192.168.122.1
sudo nmcli con modify static200 ipv4.dns 8.8.8.8
sudo nmcli con modify static200 ipv4.method manual
sudo nmcli con up static200
'Sub3_리눅스 관리' 카테고리의 다른 글
리눅스 관리 6일차 find OpenSSH NTP Firewall 방화벽(firewall-config, firewall-cmd) (0) | 2021.05.18 |
---|---|
리눅스 관리 5일차 로그관리 journalctl 로그규칙 yum (0) | 2021.05.14 |
리눅스 관리 3일차 swap, 볼륨관리, fstab 작성, LV, PV, VG 관련명령어 (0) | 2021.05.12 |
리눅스 관리 2일차 ACL, setfacl, getfacl, at, crontab, partitioning, mount (0) | 2021.05.11 |
리눅스 관리 1일차 사용자, 그룹 , 특수 권한 (0) | 2021.05.11 |