본문 바로가기

Linux96

[Linux] RAID 0, RAID 1, RAID 10, RAID 01 차이점 데이터를 저장하는 디스크는 언제든지 고장이 날 수 있다. 따라서 2차 저장장치인 디스크에 데이터를 저장했다고해서 영구적으로 데이터의 영속성이 보장되는 것은 아니다. 디스크에 저장된 데이터의 가용성을 확보하기 위해서 '레이드(RAID, Redundant Array of Independent Disks 혹은 Redundant Array of Inexpensive Disks)' 구성을 사용하는 경우가 많다. 레이드는 그 구성 방법에 따라 RAID 0, RAID 1, RAID10, RAID 01 설정을 많이 사용한다. 레이드 뒤쪽에 오는 숫자가 직관적이지 않아서 어떻게 구성하는 방법인지 헷갈릴 때가 많다. 0과 1은 '스트라이핑(Striping)'과 '미러링(Mirroring)'을 의미하며 01을 SM으로 기억.. 2021. 8. 6.
[Linux] 디스크(Disk), 파티션(Partition)과 볼륨(Volume)의 차이 서버의 저장장치와 저장공간에 대한 모니터링을 진행하면 '디스크(Disk)', '파티션(Partition)', '볼륨(Volume)'이라는 단어를 자주 접하게 된다. 이 중 파티션(Partition)과 볼륨(Volume)이라는 단어는 많이 혼용되기도 하는데, 정확하게 이들이 어떻게 다른지 찾아서 정리해봤다. 디스크(Disk) 디스크는 일반적으로 서버에 장착되어 있는 물리적인 저장장치를 의미한다. 원래 디스크는 자기 물질이 발라져있어 데이터를 저장할 수 있는 디스크 플래터(Platter)와 데이터를 읽고 쓸 수 있는 디스크 헤더, 그리고 디스크 헤더를 특정 위치로 위치시키는데 사용되는 디스크 암(Arm)으로 구성되어 있는 하드디스크(HDD)를 의미한다. 하지만 최근에는 SSD나 플래시 메모리, RAM 디스크.. 2021. 8. 5.
[Linux] Bash 문자열 변수 조작 (자르기, 치환, 삭제) Bash 스크립트를 작성하다보면 간단하게 문자열 변수를 조작하고 싶을 때가 있다. 예를 들어 따옴표로 감싸진 문자열 값에서 앞, 뒤에 있는 따옴표를 제거한 알맹이만 꺼내고 싶을 때가 있다. Bash에서는 문자열 변수를 간단하게 조작할 수 있는 몇 가지 기능을 제공한다. 1. 문자열 변수 연결 문자열 변수의 값들을 연결하는 Concat 동작은 간단하다. new_value=${old_value1}-with-${old_value2} 이런식으로 사용하면 'old_value1' 변수의 값과 'old_value2' 변수의 값 사이에 '-with-' 문자열을 추가한 형태의 새로운 문자열이 만들어진다. 2. 문자열 변수 자르기 프로그래밍 언어에서 문자열을 '슬라이싱(slice)'하는 경우가 종종 있다. Bash에서는 .. 2021. 6. 24.
[Linux] Bash 배열(Array) 사용법 및 예제 프로그래밍 언어에서는 여러 변수를 한꺼번에 다루기 위해서 '배열(Array)'이라는 자료구조를 사용한다. 배열을 사용하면 여러 데이터를 간단한 몇 줄로 처리할 수 있어 편리하다. Bash 역시 배열을 지원한다. Bash 배열(Array) 사용법 배열 선언하기 array_1=("value 1" "value 2" "value 3") array_2=(1 2 3) 다른 명령어의 결과를 배열로 만들려면 IFS=$'\n' ARR=(`cat test.txt`) cat test.txt로 출력되는 결과 값을 '\n' 값으로 분리해서 배열로 만들 수 있다. 배열 참조하기 array=("value 1" "value 2" "value 3") echo "${array[2]}" # 2번 인덱스에 대한 값 출력 echo "${ar.. 2021. 6. 22.
[Linux] time 명령어 - 실행시간 측정 특정 프로그램의 실행 시간을 측정하기 위해서 time 명령어를 자주 사용한다. $ time ./a.out 이런 식으로 time 명령어를 앞에 쓰고 실행할 커맨드를 뒤쪽에 써주면 뒤쪽에 써준 커맨드를 실행하는데 얼마나 걸렸는지 실행시간에 대한 정보가 출력된다. $ time ./a.out real0m1.646s user0m0.001s sys0m0.001s 출력되는 내용은 대략 이러하다. real, user, sys 3가지 시간 정보가 출력된다. real의 경우 총 실행시간을 의미한다. 실제 커맨드를 실행하는데 걸린 시간이다. user의 경우 user 영역에서 실행된 시간을 의미한다 sys의 경우 커널 영역에서 실행된 시간을 의미한다 2021. 6. 19.
[Linux] Bash 스크립트에서 따옴표 제거 Bash 스크립트를 작성할 때 쌍따옴표(")로 둘러쌓인 값에서 쌍따옴표만 제거하고 싶을 때가 있다. "Hello" 라는 값에서 쌍따옴표만 제거하고 Hello 라는 값만 추려내고 샆은 경우가 이에 해당한다. 이 경우 Bash의 매개변수 치환(Parameter Substitution)을 이용하면 된다. 예를 들어 $ VAR="\"TEST\"" $ echo $VAR "TEST" "TEST"라는 문자열이 변수에 저장되어 있을 때, 앞뒤에 있는 쌍따옴표만 제거하기 위해서는 $ temp="${VAR%\"}" $ temp="${temp#\"}" $ echo "$temp" TEST 이런 식으로 입력하면 된다. ${VAR%\"} 를 실행하면 VAR 데이터에 저장되어 있는 값에서 뒤쪽에 오는 쌍따옴표가 제거된다. ${te.. 2021. 6. 17.
[Linux] 리눅스 시스템 로그 파일들 정리 리눅스 서버를 운영하다보면 다양한 형태의 장애 상황을 만나게 된다. 갑자기 CPU 사용률이 100%를 친다던가 네트워크 대역을 전부 소모해버린다던가, 메모리 사용량이 폭증하는 등의 이벤트가 발생할 수 있다. 이 경우 리눅스에서 남기는 다양한 로그 정보들을 열어보면서 문제를 분석할 수 있다. 리눅스의 로그들은 주로 /var/log 디렉토리에 저장된다. 이 디렉토리에는 다양한 시스템 로그 파일들이 기록된다. /var/log/messages 시스템에 문제가 생겼을 때 가장 먼저 확인해보는 로그 파일이다. syslog.conf 설정 파일에 로그를 남기지 않도록 지정된 내용을 제외한 모든 항목들이 기록된다. 많은 항목들이 기록되기 때문에 일반적으로 grep 명령어를 통해서 확인한다. /var/log/secure .. 2021. 6. 16.
[Linux] mktemp 명령 사용법 및 예제 - 임시 파일 만들기 Bash 스크립트를 작성하다가 임시로 파일을 만들어서 사용하고 싶은 경우가 있다. 특정 파일 경로를 사용하면 스크립트를 동시에 실행할 경우 파일의 내용이 덮어쓰여지게 된다. 따라서 현재 실행 중인 프로세스에서만 접근할 수 있는 임시 파일을 생성할 필요가 생길 수 있다. 이럴 때 mktemp 명령을 사용하면 편하다. mktemp 사용법 mktemp 명령은 다음과 같이 사용할 수 있다. $ mktemp /tmp/tmp.Jgx8ybtklqk mktemp 명령을 실행하면 /tmp 디렉토리에 임의의 파일이 생성되고 생성된 파일의 이름이 리턴된다. 스크립트 내에서 임시로 사용할 파일을 생성할 때, 이 명령을 사용하고 출력되는 파일 이름을 사용하면 된다. -d 옵션을 이용해서 임시 디렉토리도 생성할 수 있다. $ m.. 2021. 6. 8.
[Linux] smartctl 명령을 이용한 디스크 점검 smartctl 명령어는 SMART(Self-Monitoring, Analysis, and Reporting Technology) 기능으로 하드디스크를 점검하는 도구다. 리눅스와 윈도우에서 사용가능하다. smart 설치 - 윈도우 윈도우용 smartctl 설치파일은 smartmontools.org/wiki/Download 페이지에서 다운로드할 수 있다. 페이지에 들어가서 Install the Windows package 섹션을 보면 NSIS-installer 링크를 확인할 수 있다. here 버튼을 누르면 https://sourceforge.net/projects/smartmontools/files/ 링크가 열린다. Download Lastest Version 버튼을 클릭해서 다운로드하고 설치해주면 된다.. 2021. 5. 19.