본문 바로가기

리눅스76

[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] 명령행(터미널)에서 메일 보내기 - sendmail, mail(mailx) 명령 사용법 및 예제 모니터링 스크립트를 작성하고 crontab을 이용해서 주기적으로 실행하도록 설정하는 경우, 문제가 생겼을 때 메일을 통해서 원격으로 리포트를 받아보길 원할 때가 있다. 리눅스에서는 이런 경우 메일 전송을 해주는 유틸리티를 이용해서 모니터링 결과를 메일로 전송할 수 있다. sendmail 설치 CentOS 기준 yum을 이용해서 sendmail을 설치해준다. $ sudo yum install sendmail sendmail-cf -y 그리고 sendmail 서비스를 실행해준다. $ sudo systemctl start sendmail.service $ sudo systemctl enable sendmail.service mailx 설치 CentOS 기준, yum을 이용해서 mailx를 설치해준다. $ su.. 2021. 6. 9.
[Linux] ulimit 옵션 사용법 및 설정법 시스템 리소스를 질서있게 사용하려면 시스템에서 동작하는 프로세서의 자원 사용 한도를 명확하게 정해둬야한다. 마치 어린이보호 구역에서는 30km/h 이하의 속도로 달리고 고속도로에서는 100km/h로 달리도록 정해놓는 것과 같다. 리눅스 시스템에도 여러가지 자원 사용의 한계값(limit)이 정해져 있다. 시스템 리소스의 한계값에는 'soft limit'과 'hard limit'이 있다. soft limit은 프로세스가 생성되면 기본적으로 적용되는 한도 값이다. 이 값은 변경될 수 있다. hard limit은 soft limit에서 최대로 늘릴 수 있는 값으로 시스템의 수퍼 유저만 바꿀 수 있다. 리눅스 시스템에서 자원의 한계 값을 확인하고 설정할 수 있는 명령어로 ulimit을 알아둬야한다. ulimit .. 2021. 3. 2.
[Linux] 파일 시스템 확인하기 사용중인 파일 시스템의 이름을 확인해야하는 경우가 있다. df -TH 를 이용한 방법 [root@037b1f55df70 /]# df -TH Filesystem Type Size Used Avail Use% Mounted on overlay overlay 68G 21G 43G 33% / tmpfs tmpfs 68M 0 68M 0% /dev tmpfs tmpfs 1.1G 0 1.1G 0% /sys/fs/cgroup shm tmpfs 68M 0 68M 0% /dev/shm /dev/vda1 ext4 68G 21G 43G 33% /etc/hosts tmpfs tmpfs 1.1G 0 1.1G 0% /proc/acpi tmpfs tmpfs 1.1G 0 1.1G 0% /sys/firmware df -TH 명령을 실행.. 2020. 12. 16.
[Linux] 리눅스 OS 버전 정보 확인하기 클러스터를 운영하면서 특정 호스트의 리눅스 버전을 확인하고 싶은 경우가 있다. 리눅스 운영체제 버전을 확인할 수 있는 방법은 여러가지가 있다. 커널 정보확인 [root@435a98823997 /]# uname -a Linux 435a98823997 5.4.39-linuxkit #1 SMP Fri May 8 23:03:06 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux 리눅스 배포판 정보 확인 1 [root@435a98823997 /]# cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core) 리눅스 배포판 정보 확인 2 [root@435a98823997 /]# cat /etc/issue CentOS Linux release 8... 2020. 12. 10.
[Linux] 디스크 입출력(I/O) 성능 측정하기 - dd, hdparam 명령 빅데이터 클러스터에서 각 호스트 장비의 입출력 성능은 매우 중요하다. 장비의 스펙이 바뀌거나 HDD에서 SSD로 구성을 변경할 때 서버의 입출력 성능을 측정해보고 싶을 때가 있다. 디스크 확인 (df -h) 우선 테스트해볼 디스크 장비를 확인해봐야한다. 시스템에 마운트되어 있는 파일 시스템 정보는 df 명령을 이용해 확인할 수 있다. $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 63G 2.2G 58G 4% /data1 df 명령의 -h 옵션을 이용하면 사람이 읽을 수 있는 (Human Readable) 형태로 정보를 출력해준다. /dev/sda1 디스크에 대한 입출력 성능 측정을 진행하겠다. 1. dd 명령 - 쓰기 성능 테스트 가장 간단하.. 2020. 11. 19.
[Linux] 임시 디렉토리 '/tmp' 삭제 관련 설정, 'tmpwatch' 설정 파일 유닉스 계열의 운영체제에서는 임시 파일을 '/tmp' 디렉토리에 생성한다. 이 경로에 생성한 파일은 시스템이 재부팅될 때 혹은 주기적으로 커널이 지워주기 때문에 별도로 관리를 하지 않아도 된다. '/tmp' 디렉토리에 생성된 임시파일을 정리하는 규칙은 리눅스 구현체마다 조금씩 다르다. Ubuntu 데비안(Debian) 계열의 리눅스의 경우 시스템이 재부팅되는 경우에 '/tmp' 디렉토리가 지워진다. 이는 기본 값이고 /etc/default/rcS 파일에 임시 디렉토리 삭제와 관련된 룰이 저장된다. 대략 다음 내용이 저장되어 있다. # /etc/default/rcS # # Default settings for the scripts in /etc/rcS.d/ # # For information about t.. 2020. 11. 18.