일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- VIRT
- 구성관리
- 자동화
- SSH OTP
- 유닉스
- 인프라
- devops
- 통합 풀 백업
- 백업
- Vault
- 시스템
- 파일시스템
- Role
- 전체 백업
- 앤서블
- Secret Engine
- key/value
- hashicorp
- REST API
- 차분 백업
- SHR
- IAC
- backend storage
- secret engines
- kv
- 리눅스
- vault agent
- auth methods
- 커널 파라미터
- DATA 백업
- Today
- Total
목록OS 및 스토리지/Linux (13)
클라우드 아카이브
0. 들어가기 전 Linux에서 top 명령어를 입력하면 특정 Interval 간격마다 화면을 갱신하면서 보여줍니다. 출력값에서 OS의 구동 시간(uptime), 접속 유저, Load Average, 메모리 사용량, 전체 프로세스 현황 등 시스템 운영에 필요한 다양한 정보를 확인할 수 있습니다. 특정 프로세스에 대한 정보를 확인하고자 할 때, VIRT, RES, SHR 그리고 S라는 용어가 등장하는데 해당 용어가 어떤 것을 의미하는지 알아보는 포스팅을 작성하겠습니다. 1. VIRT, RES, SHR 개념 VIRT, RES, SHR 용어의 개념을 먼저 정의하겠습니다. VIRT : 프로세스가 리눅스 커널로부터 할당받은 최대 가상 메모리(Virtual Memory) 전체 크기 RES : 프로세스가 실제로 최대..
0. 배경 리눅스 서버를 구축/운영할 때 bash/python와 같은 Shell 혹은 앤서블과 같은 IaC 도구를 사용하여 패치 등을 자동화하기 위해 다양한 시스템 정보 확인 관련 명령어 사용하여 정보를 수집하는 경우가 생깁니다. 물론 앤서블을 사용할 때는 gather_facts 정보를 통해 파악이 가능하지만, 본 기능은 성능 저하 이슈가 발생할 수 있으며 성능을 극한으로 끌어올릴 때 uname을 통해 커널 정보를 수집해야될 수도 있습니다. 따라서 시스템 정보 확인 명령어는 DevOps 및 SE 업무를 수행하는데 반드시 알고 있어야됩니다. 본 포스팅에서는 커널, CPU/Memory, 디스크 및 NIC 등을 확인하는 방법에 대해 알아보겠습니다. 1. 커널 정보 확인 (uname) # 커널 전체 정보 확인 ..
1. 배경 리눅스 시스템에서 1분, 5분, 15분 단위로 평균 부하를 파악하고 관련 정보를 활용하여 장애 발생 전 조치를 취해야됩니다. 이 때 평균 부하 즉 Load Average를 확인하기 위해 사용되는 명령어가 uptime 명령어이며, 특정 프로그램 혹은 명령어(사실 ls 등의 명령어도 일종의 프로그램입니다.)의 실행시간 등을 파악할 때 time 명령어가 사용됩니다. 본 포스팅에서는 time, uptime 명령어에 대해 각각 알아보고 해당 결과값 데이터를 통해 확인할 수 있는 내용과 활용 방안에 대해 소개하겠습니다. 2. time 명령어 : 특정 프로그램의 실행 시간을 확인 my-binary라는 프로그램을 실행시킨 직후부터 완료되기까지 실제 소요되는 시간을 확인하기 위해서는 time 명령어를 사용합니..
SSH 개념 SSH(Secure Shell)는 원격지에 위치한 호스트 OS에 접속하기 위해 사용되는 인터넷 프로토콜 1995년에 출시된 프로토콜 Secure Shell이라는 용어에서 알 수 있듯이 기존 telnet에 보안(Secure) 기능을 추가하여 통신 기본 포트는 22번이며, /etc/sshd_config 파일에서 SSH 포트 번호 수정이 가능 SSH 통신 방식 사용자는 SSH Client에서 아래와 같이 2가지 인증 방식 중 하나를 선택하여 SSH Server에 접속할 수 있습니다. ID와 Password를 이용한 사용자 인증 공개키 암호화 방식을 이용한 사용자 인증(Public Key, Private Key) 서버에서 사용할 인증 방식은 /etc/sshd_config 파일에서 수정이 가능하며 r..
1. 들어가기 전 과거에는 네트워크 인터페이스를 이중화할 때 Bonding을 바탕으로 구성했습니다. 다만 Bonding 구성 시, Network에 영향받지 않게 NetworkManager를 종료 후 구성해야됬습니다. 하지만 Redhat 7 이상부터 Teaming을 사용하여 네트워크 인터페이스 이중화하게 되었습니다. Bonding과 다르게 Teaming은 NetworkManger 종료 없이 해당 데몬을 사용하여 구성할 수 있게 되었습니다. 본 포스팅에서는 NetworkManager를 사용하여 Teaming을 구성하는 방식에 대해 알아보겠습니다. 2. 구성도 3. 구성방식 3-1. Pre-Requirements 물리적 네트워크 인터페이스 2개 (ex - ens35, ens36) NetworkManager 패..
1. 들어가기 전 리눅스를 구축하고 운영하는 업무를 수행하다보면 SSH 또는 물리 콘솔을 통해 서버에 GUI/CLI 접근을 할 수 있습니다. 1대의 리눅스 서버에 여러 명의 사용자가 접근할 수 있는 이유는 2가지입니다. 바로 리눅스의 특성인 다중 사용자를 허용(여러 명의 사용자가 동시에 1대의 리눅스 서버에 접속 가능하게 해줌)하는 것과 이를 가능하게 해주는 가상 터미널(Pseudo Terminal) 때문인데요. 본 포스팅에서는 다중 사용자 환경을 가능하게 해주는 TTY, PTY, PTS에 대해 알아보겠습니다. 2. TTY 의미와 유래 표준 입력(Standard Input)에 연결된 터미널의 파일 이름을 의미합니다. 전신 타자기에서 유래된 이름으로 Tele Type writer의 약자입니다. 리눅스는 디..
1. 들어가기 전 리눅스는 여러 개의 프로세스를 병렬로 처리할 수 있는 멀티 프로세스를 지원하는 운영체제로, 한정된 CPU 코어보다 많은 프로세스를 처리할 수 있게 해줍니다. 예를 들어 8개의 CPU 코어를 가진 리눅스 운영체제에서 50개의 프로세스를 처리하는 것도 가능합니다. 리눅스 시스템 관리자에게 리눅스의 프로세스 관리 방식과 여러 개의 프로세스를 하나의 그룹으로 사용하게 해주는 잡(job)에 대한 이해는 필수입니다. 본 포스팅에서는 프로세스와 잡에 대해 알아보겠습니다. 2. 프로세스와 잡 2.1 - 프로세스 프로세스는 시스템(리눅스, 윈도우 등)에서 수행하는 작업을 뜻하며, 리눅스 환경에서는 계층 구조를 통해 수많은 프로세스를 체계적으로 관리합니다. 이러한 계층 구조로 인해 좀비 프로세스와 고아 ..
while-do-done 명령어란 C언어에서 while을 통한 반복문 구현과 같이 Shell 스크립트를 통해 반복문을 구현할 때 while-do-done 구문을 사용하여 구현이 가능합니다. 문법 구조 # 기본 문법 구조 while [조건] do 명령어1 명령어2 done 예제1: 0부터 10까지의 숫자를 반복문으로 출력 #!/bin/bash # while.sh iterator=0 while [ $iterator -le 10 ] do printf "숫자 출력: %d\n" $iterator ((iterator++)) done # 출력 $sh read.sh 숫자 출력: 0 숫자 출력: 1 숫자 출력: 2 숫자 출력: 3 숫자 출력: 4 숫자 출력: 5 숫자 출력: 6 숫자 출력: 7 숫자 출력: 8 숫자 출력..
Linux Shell에서 read 명령어란? 사용자로부터 표준 입력(stdin, Standrad Input)을 통해 한 줄의 내용씩 입력을 받는 명령어입니다. 예제1: read 명령어를 통해 val이라는 변수에 4자리 정수형을 입력 #!/bin/bash # read.sh read val printf "%04d\n" $val # 결과 $ sh read.sh 12345 12345 예제2: 지정된 String을 먼저 출력한 후 사용자로부터 5자리의 정수형을 입력 #!/bin/bash # read.sh read -p "입력: " num printf "%05d" $num # 출력 $ sh read.sh 입력: 1234 1234 예제3: 오직 13자리의 변수값을 입력 #!/bin/bash # read.sh read..
개요 리눅스 시스템을 운영하다보면 디렉토리의 전반적인 구조에 대해 이해를 하고 있어야하는 경우가 있습니다. 대표적으로, 시스템 상에 문제가 생겼을 때 문제와 관련된 로그를 확인하고자 할 경우 /var/log/syslog를 확인하는 경우가 있습니다. 이처럼 기본적인 디렉토리에 대한 구조를 알고 있어야 시스템과 관련된 트러블 슈팅을 수행할 때 도움이 많이 되곤 합니다. 본 포스팅에서는 리눅스를 구성하는 기본적인 디렉토리에 대해 알아보겠습니다. 디렉토리 1. bin : Shell 본체에서 가지고 있는 명령어들이 모여있는 디렉토리 (default 명령어) 콘솔에서 사용되는 가장 기본적인 명령어, 즉 리눅스가 작동하기 위해 최소한으로 필요한 것들이 저장됩니다. bash, mkdir, mount 등 사용자가 $ m..