"NFS"
- 파일을 열지 않고 쉘상에서 특정 단어를 변경하는 등의 내용을 작성하면 이를 파일에 반영시킬 수 있다.
- abc.txt 파일내에서 만나게 되는 첫번째 old를 new로 변경한다. 만약 ..new/g' 라고 작성했다면 파일 전체를 old를 new 로 변경한다.
- 만약 변경될 내용을 변수를 이용하여 처리하고 싶다면 ' 대신 " 를 사용하면 된다.
예) sed -i 's/old/new' abc.txt
i - 현재 위치에서 입력
o - 현재 위치에서 아랫줄 부터 입력
yy - 한줄 복사
p - 붙여넣기
u - 되돌리기
dd - 한줄 지우기
G - 맨 아래로Quiz. sed 를 이용하여 test.txt 파일내에 있는 섹션 [database] 아래에 1.1.1.1 이라는 IP 주소를 추가시켜보세요. 단, 파일을 열어서는 안됩니다 sed -i'' -r -e "/database/a\1.1.1.1/" test.txt sed -i -r -e "/\[database\]/a\5.5.5.5" a.txt
서버 확인(클라이언트가 서버를 확인)
사용자 확인(서버가 사용자를 확인[인증])
- Centos7 버전 이후(이전에는 eth0, eth1..)로 인터페이스의 이름은 다음과 같은 과정을 거쳐 결정되도록 설정되어 있다.
ens(slot) -> enp(port) -> eno(bios 이름을 이용하여 결정)
1. 우리는 우리가 직접 인력한 인터페이스 이름을 사용하고 싶다. eth0로 변경
[root@srv7 ~]# vi /etc/default/grub 6 GRUB_CMDLINE... v=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"
2. 인터페이스 변경
[root@srv7 ~]# cd /etc/sysconfig/network-scripts/ [root@srv7 network-scripts]# ls ifcfg-* ifcfg-ens32 ifcfg-lo [root@srv7 network-scripts]# mv ifcfg-ens32 ifcfg-eth0
- 1 TYPE=Ethernet -> L3 2 BOOTPROTO=none -> DHCP라고 변경하면 아래 사항과는 상관없이 자동으로 IP를 받아온다 3 NAME=ens32 4 DEVICE=ens32 5 ONBOOT=yes 6 DNS1=8.8.8.8 7 IPADDR=192.168.1.112 8 PREFIX=24 9 GATEWAY=192.168.1.1
- 변경 하기
:%s/ens32/eth0/g
3. 변경된 사항에 대한 최종 반영
[root@srv7 network-scripts]# grub2-mkconfig -o /boot/grub2/grub.cfg
4. 재부팅
[root@srv7 network-scripts]# reboot
소유주 그룹사용자 그 외 모든 사용자 rwx rwx rwx chmod를 사용해 재정의할 수 있다. chmod 777 모든 권한 오픈 "u" : 소유주 "g" : 그룹 "o" : others chmod u+x ddd.sh -> 소유주에게 실행 권한 부여 chmod +x ddd.sh -> 모두에게 실행 권한 부여
생성된 사용자는 무조건 하나의 그룹에는 포함되어야 한다.
만약 2개의 그룹에 포함되어 있다면 둘 중 하나는 primary group이어야 한다.
usermod -aG newgroup user2 user2를 기존 그룹 유지하면서 새로운 newgroup에 포함시킨다. a는 뒤에 g를 두면 한개의 그룹에만 포함되는 것이므로 모순이다. aG
- echo "user2:user2" | chpasswd
- 생성된 그룹을 삭제한다.
- userdel -> 사용자는 삭제되지만 사용자의 홈 디렉토리는 유지된다.
- userdel -r -> 사용자를 삭제하면서 동시에 홈 디렉토리도 삭제한다.
- 리눅스의 물리장치는 논리장치(디렉토리)와 연계된 상태에서 사용할 수 있다.(마운트)
물리장치 -> /dev
* 외부에 있는 스토리지에 볼륨을 마운트하여 사용하는 경우에는 로컬에서 vda, vda와 같은 형태로 보이기도 한다. vda-> vda1,vda2
mount /dev/sr0 /test
umount /test/ or umount /dev/sr0
[nfs]
mount -t nft 1.1.1.1:/remote /test
마운트 정보를 지속적으로 유지하고 싶다면 /etc/fstab에 기록하고
- 크기가 작은 다수의 볼륨을 연결하여 하나의 볼륨으로 만들고 이를 다시 논리적으로 나누어 원하는 크기의 볼륨으로 조정하여 사용할 수 있다.
- 각 볼륨의 크기가 달라도 상관없이 연결이 가능하다.
- 속도가 느리다.
- 데이터 손실시 복구가 어렵다.
- RAID는 두개 이상의 디스크를 결합하여 데이터 손실을 방지하고 데이터 I/O를 높여줄 수 있다.
- RAID는 리눅스와 같은 운영체제에서 소프트웨어적으로 제공하는 방식과 서버/스토리지 자체적으로 제공하는 하드웨어적인 기법으로 구분할 수 있다.
- 디스크를 동시에 사용하여 쓰기
- 디스크 공간 활용율 -> 100%
- 디스크 손상시 복구가 불가능하다.
- FT를 지원한다.
- 공간활용율 -> 50%
- 패리티비트를 한대의 스토리에 두고 사용하는 방식
- 패트리비트를 각 스토리지에 분산시켜 두고 사용하는 방식
haproxy 구성 예 -> /etc/haproxy/haproxy.cfg -> systemctl restart haproxy
https://cloudwafer.com/blog/installing-haproxy-on-centos-7/
=============
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend http_front
bind 192.168.1.104:80
stats uri /haproxy?stats
default_backend http_back
backend http_back
balance roundrobin
server my_server1 192.168.1.102:80 check
server my_server2 192.168.1.103:80 check
HAProxy 는 로드 밸런서(L4/L7)
L7 LB(alb@aws) 구성예 -> https://www.serverlab.ca/tutorials/linux/network-services/layer-7-load-balancing-with-haproxy/
- 리눅스는 설치를 위한 모든 코드를 외부에 공개한다. 따라서 특정 애플리케이션을 설치하고자 한다면 소스코드를 다운로드하고 파일을 컴파일한 뒤 이를 설치하는 과정을 거쳐야한다. 컴파일을 위해서는 설치 위치, 필요한 옵션등을 수동으로 지정할 수 있어 전문가나 익숙한 사람들에게는 좋은 방법이 될 수 있으나 초보자나 클라우드 환경과 같이 빠른 설치가 필요한 곳에서는 어려운 일이 될 수 있다. 이를 해결하기 위하여 윈도우의 install.exe와 비슷한 파일을 RedHat에서 만들었는데 이를 RPM이라 부른다. (또는 패키지라 칭한다.)
yum -> dnf
wget http://....com/etst.rpm
yum -y install test3.rpm