본문 바로가기

Linux96

[Linux] Patrol Read(PR), Consistency Check(CC) 명령어 정리 리눅스 서버의 디스크 컨트롤러 중에는 Patrol Read라는 기능을 제공하는 경우가 있다. 일반적인 경우에는 Patrol Read가 서버의 성능에 영향을 주지는 않지만 가끔 지나치게 리소스를 잡아먹는 등 자신의 존재감을 드러내는 경우가 있다. Patrol Read가 무엇인지 알아보고 Patrol Read 설정을 변경할 수 있는 명령어를 정리해보자. Patrol Read(PR) Patrol이라는 단어에 '순찰을 돌다'라는 의미가 있다. 따라서 Patrol Read는 마치 순찰을 돌듯이 미리 디스크에 문제가 있을 만한 부분을 미리 발견해 문제를 예방하기 위한 기능이라고 볼 수 있다. Patrol Read는 하드 드라이브의 블럭을 미리 스캔해서 문제가 있을만한 배드블럭(Bad Block)을 예비 영역과 교.. 2023. 11. 10.
[Linux] 빈 RPM 패키지 만드는 방법 리눅스 서버를 운영하다보면 빈 RPM 패키지를 만들어 설치해야할 때가 있다. 특정 소프트웨어를 Makefile로 직접 빌드해 설치하는 경우 서버에는 소프트웨어가 설치되지만 rpmdb에는 패키지 정보가 추가되지 않는다. 소프트웨어를 사용할 수는 있지만 rpm을 통해 설치하지 않아서 의존성 체크는 계속 실패하게 된다. 이 경우 빈 rpm 패키지를 만들어 설치하는 식으로 rpm의 의존성 체크를 우회할 수 있다. 예를 들어 python 패키지는 특정 버전 이후부터 python2와 python3로 패키지 이름이 변경되었다. 오래된 버전의 운영체제에서 동작하던 소프트웨어 중에는 python 이라는 이름의 패키지에 의존성이 걸려있는 경우가 있다. python2, python3가 설치되어 있고 alias도 되어 있어 .. 2023. 8. 10.
[Linux] '/proc/diskstats' 파일 리눅스는 시스템의 다양한 정보를 /proc 디렉토리 하위에 있는 파일을 통해 제공한다. 이번 포스트에서는 /proc/diskstats 파일에 대해 알아보자. /proc/diskstats 파일 /proc/diskstats 파일은 시스템에 있는 블록 디바이스들의 입출력 통계 정보를 출력해준다. cat 명령을 통해 /proc/diskstats 파일의 내용을 조회해보면 블록 디바이스 이름과 다양한 숫자들이 화면에 출력된다. [root@6f9963e1a7aa /]# cat /proc/diskstats 252 0 vda 13523 61 847172 2801 1330009 31047 225631031 1399426 0 870390 1523579 4707 0 386812040 173 64168 121177 252 1 .. 2023. 5. 23.
[Linux] tar: Ignoring unknown extended header keyword 에러 해결 리눅스 환경에서 타르볼(*.tar.gz) 파일을 풀어야 할 일이 있었다. tar xzvf 명령을 이용해서 타르볼을 풀었는데 다음 에러 메시지가 터미널 창을 가득 채웠다. tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' 타르볼을 풀어서 수행하던 작업이 제대로 끝나지 않아서 저 에러가 뭔지 찾아봤다. .. 2023. 3. 21.
[Linux] gzip - gz 압축하기, 압축풀기 gz 명령으로 파일을 압축하고 gz 파일의 압축을 풀어보자. gzip 설치 gzip 명령은 리눅스에 기본으로 제공되고 있다. 만약 gzip 명령이 없다면 다음 명령으로 설치하면 된다. apt install gzip gz 압축하기 gzip {압축 할 파일명} 파일을 압축하기 위해서는 gzip 명령어의 인자로 압축할 파일을 명시하면 된다. $ gzip abc.txt 수행 결과로 abc.txt 파일은 사라지고 abc.gz 파일이 생성된다. gz 파일은 여러개의 파일을 하나로 묶어서 압축하기 위해 사용하는 명령이 아니다. 여러 파일을 우선 tar 명령으로 묶은 다음 gzip 명령으로 압축하면 된다. gz 압축풀기 gzip -d {압축 파일}.gz 파일의 압축을 풀기 위해서는 gzip 명령의 -d 옵션으로 압축 .. 2023. 3. 13.
[Linux] SSH 연결 최적화 - ControlMaster, ControlPath, ControlPersist 설정 클러스터를 운영하는 경우 운영 서버로 ssh 접속을 해야하는 경우가 있다. 이 때, 환경설정에 따라 아이디, 비밀번호 이외에 추가로 OTP 등의 인증을 요구하는 경우가 있다. 하루에 한번 업무차 접속하는 경우라면 상관없지만 빈번하게 새로운 ssh 연결을 생성해야하는 경우라면 매번 해야하는 ID, Password, OTP 등의 절차가 매우 번거로울 수 있다. 이 때, ControlMaster, ControlPath, ControlPersist 설정을 해두면 번거로움을 어느정도 해소할 수 있다. ssh 설정 ~/.ssh/config 파일을 열고 다음 설정을 추가하자. Host server HostName my.host.com User myUserId ControlMaster auto ControlPath ~.. 2023. 1. 4.
[Bash] 문자열 자르는 방법 Bash 스크립트로 문자열 데이터를 다룰 때, 문자열의 일부를 잘라서 사용해야하는 경우도 있다. 문자열을 자르는 방법에 대해서 알아보자. 문자열 자르기 - 인덱스로 자르기 Bash 스크립트에서 문자열의 일부를 잘라서 사용해야 하는 경우 다음과 같은 문법을 사용하면 된다. ${str:offset:length} str 변수에 담겨있는 문자열의 offset 부터 length 만큼 잘라오겠다는 의미다. 예를 들어 #!/bin/bash str="Hello, World" echo "${str:0:5}" echo "${str:7:5}" Hello, World 라는 문자열을 담고 있는 str 변수를 ${str:0:5}로 접근하면 0번 문자부터 5개의 문자를 잘라서 가져온다. 즉 Hello 문자열이 얻어진다. 마찬가지로.. 2022. 12. 3.
[Bash] 문자열 비교 방법 리눅스 Bash 스크립트에서 문자열을 비교하고, 문자열을 자르는 방법에 대해서 알아보자. 문자열 비교 - 같은지 확인 Bash 스크립트에서 두 문자열을 == 연산으로 비교할 수 있다. #!/bin/bash str1="Hello" str2="hello" if [ $str1 == $str2 ];then echo "Equal" else echo "Not equal" fi 이 스크립트를 실행하면 다음과 같은 출력을 얻게 된다. $ ./test.sh Not equal 단순히 == 연산으로 두 문자열을 비교할 경우, 둘 중 하나가 빈 문자열일 때 에러가 발생한다. 예를 들어 #!/bin/bash str1="Hello" str2="" if [ $str1 == $str2 ];then echo "Equal" else e.. 2022. 12. 2.
[Linux] pstree 명령어 사용법 및 예제 pstree 명령어는 프로세스의 부모-자식 관계를 트리형태로 출력해주는 명령어다. 프로세스들의 관계를 트리 형태로 출력해주어 계층관계를 한눈에 알아볼 수 있게 한다. 리눅스에서 프로세스는 부모 프로세스에 의해 생성된다. 프로세스들을 관리할 때 부모-자식 관계를 알아야 하는 경우가 종종 발생하는데, pstree 명령어를 이용해서 이 관계를 알 수 있다. 트리형태로 표현되는 정보를 통해 시스템 관리자는 프로세스의 생성 관계를 직관적으로 확인할 수 있다. pstree 사용법 $ pstree [-a][-c][-h][-n][-p][-u] pstree 옵션 옵션 설명 -a 실행한 프로세스의 인자와 옵션까지 모두 표시 -c 1개의 프로세스의 중복된 개수로 출력 -h 부모 프로세스를 강조해서 출력 -n 출력시 PID .. 2022. 11. 29.