[bash: awk] 일반 시간을 타임스탬프(timestamp)로 변환하기 (mktime)
By 반달가면 | 2017년 2월 3일 |
시간을 타임스탬프, 또는 유닉스 시간(unix time)으로 변환하고 싶을 경우 아래의 예시와 같이 date 명령으로 간편하게 바꿀 수 있다. (참고로, 유닉스 시간은 UTC 1970년 1월 1일 0시부터 몇초가 경과했는지를 나타낸다) # 2017년 1월 1일 9시 10분 25초를 유닉스 시간으로 (date) date -d "2017/1/1 09:10:25" "+%s" 1483229425 awk에서도 동일한 작업을 할 수 있다. # 2017년 1월 1일 9시 10분 25초를 유닉스 시간으로 (awk) echo "2017/1/1 09:10:25" | awk '{ date_arg=gensub("[/:]/," ","g",$0); print mktime(date_arg);}' 14832294
[리눅스커널][디버깅] ftrace 설정과 로그 분석하기
By Guillermo Austin Kim | 2019년 3월 17일 |
ftrace 란 ftrace 리눅스 커널에서 제공하는 가장 강력한 트레이서입니다. ftrace는 커널 개발자에게 축복입니다. ftrace는 커널 세부 동작을 알기 쉽게 출력하기 때문입니다. ftrace의 특징은 다음과 같습니다.1. 인터럽트, 스케줄링, 커널 타이머 커널 동작을 상세히 추적해줍니다.2. 함수 필터를 지정하면 자신을 호출한 함수와 전체 콜스택까지 출력합니다. 물론 코드를 수정할 필요가 없습니다.3. 함수를 어느 프로세스가 실행하는지 알 수 있습니다.4. 함수 실행 시각을 알 수 있습니다.5. ftrace 로그를 키면 시스템 동작에 부하를 주지 않습니다. 다음에 이어 ftrace를 설정하는 방법을 알아보겠습니다. ftrace는 어떻게 설정할까? ftrace에서 제공하는 nop, func
리눅스에서 ZFS 설치/구성
By 반달가면 | 2018년 6월 4일 |
RAID카드 없이 여러개의 HDD를 묶어서 하나의 저장공간으로 사용할 방법을 찾아보다가 ZFS에 대해 알게 되었다. 주요 특징 두어가지가 눈에 띄어서 실제로 괜찮은지 시험해 보기로. ZFS는 zpool이라는 것을 구성해서 여러개의 저장장치를 하나의 저장공간으로 묶을 수 있다. 다만 여러개의 저장장치를 묶을 때 각 저장장치의 사용가능 공간은 이들중 가장 용량이 작은 저장장치에 의해 제한된다. 그러므로 같은 용량의 디스크를 묶는 것이 좋겠다. zpool의 종류에 따라 RAID와 유사하게 데이터 오류에 대한 보호 기능도 제공한다. 종류는 아래와 같다. striped: RAID0 비슷한 형태. 데이터 보호 기능이 없다. mirror: RAID1 비슷한 형태. 데이터 전체를 별도로 복사해서 가지
[리눅스커널][시스템콜] strace로 시스템콜 디버깅하기
By Guillermo Austin Kim | 2019년 2월 21일 |
리눅스에서는 시스템콜 디버깅을 위한 strace라는 훌륭한 툴을 제공합니다. 유저 프로그램이 실행할 때 어떤 시스템콜을 실행했는지 확인할 수 있습니다. strace 이란 툴은 리눅스에서 제공하는 강력한 시스템 트레이싱 기능입니다. 물론 라즈베리파이에서도 기본으로 설치되어 있어 바로 사용할 수 있습니다. strace는 다음 기능을 제공합니다.1. glibc(GNU C) 라이브러리에서 시스템 콜을 호출하는 함수 이름 출력2. 시스템콜 실행 후 반환값 이 기능을 쓰기 위해 우선 다음 코드를 시스템 프로그램으로 입력해 봅시다.1 #include <stdio.h>2 #include <stdlib.h>3 #include <unistd.h>4 #include <sys/t