linux에서 서비스의 실행 관리 그리고 에러 등을 모니터링할 수 있는 방법이 있습니다. 바로 systemd 인데요 이전에는 시작프로그램의 역할만을 하는 initd 라던지 하는 조촐한 것에서 지금은 거의 systemd를 사용해서 이러한 서비스들을 관리하고 있습니다. 좀더 자세한 내용을 보기 위해 위키피디아를 확인해 보도록 하겠습니다. systemd 란? systemd는 일부 리눅스 배포판에서 유닉스 시스템 V나 BSD init 시스템 대신 사용자 공간을 부트스트래핑하고 최종적으로 모든 프로세스들을 관리하는 init 시스템입니다. systemd 라는 이름 뒤에 추가된 d는 유닉스에서 데몬(daemon)을 나타내며 systemd의 기본 목표들 가운데 하나는 모든 배포판들에 대하여 기본 리눅스 구성과 서비스 ..
리눅스 프로그래밍을 하다보면 쉘에서 때론 화려하게 때론 간편하게 파일을 옮기고 찾고 합치고 하는 일들을 수행할 수 가 있는데 관련해서 몇가지 소개하도록 하겠습니다. 모든 spec 파일 내에서 'aaaa' grep 할 때 $ find -name *.spec | xargs grep -n aaaa 실행 중인 프로세스의 pid 알아내는 방법 $ ps -ef | grep [실행중인 프로세스 이름] 디스크 관련 확인 상세 옵션 df : 디스크 용량 옵션 -h : 용량을 사람이 보기 쉬운 단위로 표시해준다. (1m를 1,048,576단위로 계산, h는 human의 약자) -H : 용량을 사람이 보기 쉬운 단위로 표시해준다. (1m를 1,000,000단위로 계산) -k : 용량을 킬로바이트 단위로 표시한다. -i : ..
Docker를 사용하는 것을 넘어서 Docker의 원리와 엔진에 대한 구조까지 알고 있지만 시간이 지나다보니 기억이 흐릿해졌습니다. 서버나 리눅스 기반 플랫폼 직무면접에 나올 가능성이 많은 개념이기도 해서 오늘은 그래서 컨테이너 기술을 위한 핵심 기술인 리눅스의 namespace와 cgroup에 대해서 알아보도록 할 것인데요. 검색하시면 굉장히 많은 글들이 나오니, 핵심만 찍고 가도록 하겠습니다. 요약하면 독립적인 환경을 만들기 위해 namespace를 사용하고 cgroups(control groups)를 사용하여 자원의 할당 등을 관리합니다. namespace 하나의 system에서 수행되지만, 각각 별개의 독립된 공간처럼 격리된 환경을 제공하는 lightweight 가상화 기술로, vm에서 쓰이는 h..
파일이나 폴더를 압축할 때 리눅스에서는 Tar를 유틸을 많이 사용하는데요. Tar가 갖고 있는 옵션들이 상당히 많습니다. 많이 쓰는 옵션은 아니어도 알아두면 좋은 옵션들이 있으니 오늘은 한번 정리해 보고 가도록 하겠습니다. Tar 옵션 우선 가장 많이 쓰는 옵션 먼저 한번 집고 가도록 하겠습니다. [압축할 때] tar -cvzf 파일명.tar.gz 또는 파일 [압축해제] tar -xzvf 파일명.tar.gz x : 묶음을 해제 c : 파일을 묶음 v : 묶음/해제 과정을 화면에 표시 z : gunzip을 사용 f : 파일 이름을 지정 p : 권한을 원본과 동일하게 유지 기능 옵션 -A, --catenate, --concatenate : 저장 파일에 tar 파일을 추가한다. -c, --create : 새 ..