본문 바로가기

Old Posts/Linux105

[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.
[Linux] ulimit 옵션 사용법 및 설정법 시스템 리소스를 질서있게 사용하려면 시스템에서 동작하는 프로세서의 자원 사용 한도를 명확하게 정해둬야한다. 마치 어린이보호 구역에서는 30km/h 이하의 속도로 달리고 고속도로에서는 100km/h로 달리도록 정해놓는 것과 같다. 리눅스 시스템에도 여러가지 자원 사용의 한계값(limit)이 정해져 있다. 시스템 리소스의 한계값에는 'soft limit'과 'hard limit'이 있다. soft limit은 프로세스가 생성되면 기본적으로 적용되는 한도 값이다. 이 값은 변경될 수 있다. hard limit은 soft limit에서 최대로 늘릴 수 있는 값으로 시스템의 수퍼 유저만 바꿀 수 있다. 리눅스 시스템에서 자원의 한계 값을 확인하고 설정할 수 있는 명령어로 ulimit을 알아둬야한다. ulimit .. 2021. 3. 2.
[Linux] nf_conntrack: table full, dropping packet 에러 - ssh connection timed out 대규모 클러스터를 모니터링 하는 과정에서 간혹 ssh 접속이 안되는 문제가 발생한다. 모니터링을 수행하는 서버에서 주기적으로 클러스터의 각 노드에 접속해서 동작하고 있어야하는 데몬들이 정상적으로 떠있는지를 확인하게 되는데, 이 과정에서 ssh 접속이 안되는 문제가 발생했다. sshd 등의 데몬은 정상 동작하고 있었다. 특이한 점은 특정 호스트에서만 접속 오류가 보고되는게 아닌 클러스터의 노드들이 랜덤하게 'ssh connectin timed out' 메시지를 보인다는 것이었다. 문제를 확인하기 위해 직접 문제의 서버로 ssh 접속을 하면 접속이 잘 된다. 하이젠버그를 몸소 체함하면서 문제의 원인을 분석해봤다. 1. nf_conntrack: table full dropping packet 메시지 ssh 접.. 2021. 2. 24.
[Linux] 현재 사용중인 리눅스 쉘 확인하기 리눅스 환경에서 개발을 하다보면 다양한 쉘(Shell)을 만나게 된다. 가장 많이 사용되는 Bash(Bourne-again shell)부터 zsh, csh, ksh 등 다양한 목적으로 개발된 쉘들이 있다. Bash만 지원하면 좋겠지만 때에 따라서는 여러가지 쉘에서 동작하는 스크립트를 작성해야하는 경우가 있다. 각 쉘마다 지원되는 명령이 약간씩 다르고, 출력 포맷도 다를 때가 있다. 때문에 현재 사용중인 리눅스 쉘을 확인해야할 경우가 있다. 현재 시스템에사 사용가능한 쉘 확인 현재 시스템에서 사용할 수 있는 쉘들의 목록을 보려면 /etc/shells 파일을 확인하면 된다. 지금 사용하고 있는 맥북에서 /etc/shells 파일을 조회해본 결과다. 리눅스는 출력 포맷이 약간 다를 수 있지만 파일의 내용이 의.. 2021. 2. 22.
[Linux] 우분투, CentOS 패키지 관리자(apt-get, yum)의 update와 upgrade 차이 우분투(Ubuntu) 리눅스를 사용하는 유저들은 패키지를 설치하기 위해 apt-get 명령을 많이 이용한다. apt-get은 Advanced Packaging Tool의 약자로 우분투를 포함한 데비안(Debian) 계열의 리눅스에서 사용되는 패키지 관리툴이다. 터미널에서 명령을 통해 손쉽게 패키지를 설치할 수 있어 GUI 기반의 패키지 설치 도구보다 더 많이 사용되는 소프트웨어다. CentOS 리눅스를 사용하는 유저들은 yum 명령을 많이 사용한다. Yum은 Yellow dog Updater, Modified의 약자로 레드햇(RedHat) 계열의 리눅스에서 사용되는 패키지 관리툴이다. apt-get과 yum은 update와 upgrade라는 명령을 제공한다. 의미상으로는 유사해보이지만 분명 다른 역할을 .. 2021. 2. 21.
[Linux] date 명령 - 과거와 미래 날짜, 시간 계산하기 Bash로 작성되는 스크립트에서 시간 포맷을 명령어 인자로 입력하는 경우가 많다. 현재 시간을 구하는 것은 물론이고 특정 시간에서 '몇 일전', '몇 일후' 같이 날짜 계산을 해야하는 경우도 많다. 시스템의 시간 정보를 얻어 올 수 있는 date 명령의 옵션을 이용하면 쉽게 날짜, 시간 계산을 할 수 있다. Date 명령 $ date 2021년 2월 11일 목요일 21시 09분 13초 KST 터미널에서 date를 입력하면 현재 시간을 가져올 수 있다. Date 명령 - '-d' 옵션 리눅스의 경우 date 명령의 -d 옵션을 이용해 과거 시간을 계산해 가져올 수 있다. date -d 'yesterday'# 어제 date -d '1 day ago'# 1일전 date -d '1 week ago'# 1주일전 .. 2021. 2. 20.
[Linux] Bash - pushd, popd 명령 Bash에서 현재 작업 디렉토리를 변경하기 위해서 'cd' 명령을 사용한다. Change Directory라는 의미를 갖고 있는 cd 명령을 통해 디렉토리를 오가면서 작업을 할 수 있다. cd 명령 cd 명령은 bash 명령을 배울 때, "Hello world" 프로그램처럼 가장 먼저 배우는 명령어다. $ cd path 부분에 이동하려고하는 디렉토리 경로를 입력한다. 상대경로가 될 수도 있고, 절대경로가 될 수도 있다. $ cd - cd 명령을 이용해서 디렉토리를 변경한 다음 다시 이전 디렉토리로 돌아가고 싶은 경우 path 부분에 '-' 문자를 넣으면 된다. 리모컨의 '이전채널' 버튼을 생각하면 된다. cd 명령의 가장 아쉬운 점은 경로 변경의 히스토리를 저장하지 않는 다는 것이다. A-B-C-D 순으.. 2021. 2. 19.
[Linux] lsof 명령어 설치 및 사용법 lsof는 list open files의 약자로 시스템에서 열려있는 파일에 대한 정보를 출력해주는 명령어다. (대략 '엘에스오브'라고 발음하는 것 같다) 리눅스와 유닉스는 일반 파일과 디렉토리, 소켓, 파이프, 블록 디바이스, 캐릭터 디바이스에 대한 관리를 파일 시스템을 통해서 할 수 있다. 따라서 특정 프로세스가 열고 있는 파일 디스크립터(fd)를 조회해보는 행위는 시스템을 모니터링하는데 굉장한 도움이 된다. 유닉스 계열의 운영체제에서는 프로세스가 열고 있는 파일을 지웠을 때, 파일 시스템에서 ls로 보이지는 않지만 reference count가 0이 아니기 때문에 실제로 지워지지 않고 남아있는 경우가 더러 있다. 이 때, 프로세스가 열고 있는 파일이 위치한 디스크를 정상적으로 언마운트할 수 없기 때문.. 2021. 2. 18.
[Linux] DNS에서 'CNAME'과 'A 레코드(A Record)'의 차이 블로그의 2차 주소를 관리할 때, 가비아나 후이즈 같은 DNS를 이용한다. DNS에서 커스텀 도메인을 사용할 때, 서브 도메인을 등록하기 위해서 CNAME과 A 레코드 같은 정보를 관리 페이지에서 등록하게 된다. CNAME과 A 레코드 모두 서브 도메인을 등록하기 위해 필요한 정보인데 정확히 어떤 차이가 있는지 알아 둘 필요가 있다. DNS (Domain Name System) 우선 DNS(Domain Name System)부터 알아야한다. 인터넷을 구성하고 있는 서버들은 IP 주소가 할당되어 있다. IPv4의 경우 192.168.0.1 같은 숫자로 구성되어 있다. 이 IP 주소를 알면 특정 서버에 접속할 수 있다. 하지만 IP 주소는 의미가 없는 유니크 값에 불과하다. 때문에 사용자들이 외우기 힘들다... 2021. 2. 16.