본문 바로가기

Linux/명령어7

[Linux] perf 명령어 사용법 및 예제 - Flame Graph 해석 방법 perf 명령어는 리눅스 커널 프로젝트에서 관리되는 시스템 성능 프로파일링 도구다. perf 명령을 이용해서 특정 프로그램이나 시스템 전체 성능을 분석할 수 있다. perf 명령을 이용해서 성능에 문제를 일으키는 부분이 어디인지를 찾아낼 수 있다. 예를 들어 프로그램의 어떤 함수가 CPU 자원을 많이 소모하고 있는지 알 수 있으며, 코드의 어떤 부분이 메모리 할당을 얼마나 하는지 등을 어셈블리 및 소스코드 레벨로 확인할 수 있다. 커널에서 제공하는 특정 함수가 얼마나 호출되는지도 파악할 수 있다. 목차 perf 설치 perf 명령은 패키지 관리자인 yum을 통해 설치할 수 있다. yum -y install perf 데비안 계열의 리눅스에서는 apt-get을 통해 설치할 수 있다. apt-get insta.. 2023. 11. 8.
[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] dos2unix, unix2dos 명령어 사용법 윈도우와 리눅스, 맥 환경을 번갈아가면서 사용하다보면 줄바꿈 문자와 관련된 문제를 자주 접하게 된다. 예를 들어 윈도우에서 작성된 파이썬 스크립트를 github에 커밋해두고 리눅스나 맥에서 실행할 때 다음 에러를 보게 되는 경우가 있다. /usr/bin/env: ‘python3\r’: No such file or directory 셔뱅으로 파이썬3를 지정해둔 첫 번째 라인을 읽다가 에러가 발생한다. python3 뒤에 \r 문자가 붙어 있는 것을 볼 수 있다. 윈도우에서는 줄바꿈을 캐리지 리턴(CR)과 라인피드(LF)를 함께 사용한다. 반면 유닉스 계열에서는 라인피드(LF)만 사용한다. 때문에 윈도우에서 작성된 텍스트 파일을 유닉스 계열의 운영체제에서 열어볼 경우 캐리지 리턴 문자가 이상하게 표시되거나 .. 2022. 10. 2.
[Linux] iostat 명령어 사용법 - 디스크 사용량 모니터링 iostat는 디스크 입출력에 대한 통계정보를 측정할 수 있는 명령어다. 처리량이나 사용률, 대기열 길이와 트랜잭션 비율 그리고 서비스 시간 등의 정보를 확인할 수 있다. 리눅스 시스템을 운영하면서 갑자기 서버에 부하가 높다던가 서버의 응답속도가 저하되는 경우가 발생할 때 디스크 입출력에서 문제가 생긴게 아닌지 모니터링하고 문제를 찾을 수 있다. 목차 iostat 설치 iostat은 sysstat 패키지를 설치하면 사용할 수 있다. $ sudo yum install sysstat or $ sudo apt install sysstat iostat 사용법 iostat 명령어를 이용하면 디스크 디바이스에 대한 입출력 정보를 확인할 수 있다. $ iostat [옵션] [인터벌] [횟수] iostat의 옵션 뒤에.. 2022. 6. 3.
[Linux] rsync 명령어 사용법 rsync는 'Remote Sync'의 줄임말로 파일과 디렉토리를 동기화하기 위한 프로토콜이자 리눅스의 유틸리티 명령어다. rsync 명령어를 이용해 로컬에 있는 파일이나 디렉토리를 원격 호스트로 보내거나 원격에 있는 파일, 디렉토리를 로컬로 복사해 올 수 있다. rsync 명령은 데이터 전송시 네트워크 대역폭을 최소화 하는 'delta encoding algorithm'을 구현해 rcp나 scp보다 빠르고 효율적으로 데이터를 동기화 한다. 즉 파일의 전체 데이터를 복사하는 대신 변경사항만 동기화해서 빠르게 복사할 수 있다는 것이다. rsync 설치 대부분의 리눅스 배포판이나 OSX에는 기본 설치가 되어 있다. 하지만 일부 리눅스를 최소 설치 옵션으로 설치했다면 rsync가 포함되지 않았을 수 있다. 이.. 2022. 5. 16.
[Linux] access 명령어 사용법 access 명령어는 현재 접속한 사용자가 특정 디렉토리나 파일의 존재 유무 및 읽기, 쓰기, 실행 권한을 가지고 있는지 확인하는 명령어다. 쉘 스크립트 안에서 특정 경로에 권한이 있는지 알아보기 위해서 사용한다. $ access [모드] 경로 예를 들어 test.txt 파일에 특정 모드로 사용이 가능한지 테스트해보기 위해서 다음과 같이 실행할 수 있다. $ access rw test.txt $ echo "$?" 명령어 자체가 내용을 출력하지는 않는다. 대신 “$?” 변수를 통해 access 명령이 리턴한 리턴 코드를 확인해서 성공(0)인지 실패(1)인지 확인할 수 있다. 옵션 옵션 설명 --help 사용법 출력 --version 버전 정보 출력 2022. 2. 8.
[Linux] 네트워크 트래픽 모니터링 - 'nethog', 'iftop' 설치 및 사용법 서버의 네트워크 상태를 모니터링하기 위한 도구로 nethog와 iftop 명령이 있다.nethog는 서버에서 구동중인 데몬이나 프로세스 레벨에서 트래픽을 모니터링 할 수 있는 도구이며, iftop은 NIC(Network Interface Card)레벨에서 트래픽을 모니터링 할 수 있는 도구다. 이 두 유틸리티를 잘 활용하면 서버에서 발생하는 네트워크 장애 상황을 모니터링 할 수 있고, 과도하게 네트워크 리소스를 잡아먹는 프로세스를 잡아낼 수 있다. 목차 1. nethogs 설치 nethogs 유틸리티는 리눅스 배포판에 기본 포함되지 않은 경우가 많다. 이 경우 수동으로 설치해주면 된다. yum이나 apt-get 같은 패키지 관리도구를 이용하면 편하다. CentOS sudo yum install netho.. 2020. 11. 10.