프로그래밍 언어/Shell

리눅스 date 사용하기

트리맨스 2022. 4. 25. 23:14
반응형

 

서버 배포 시에 마지막으로 배포한 시간을 알기 위한 스크립트를 작성하던 중, date라는 단순하지만 강력한 시간 출력을 제공하는 도구를 알게 되었다. 이 명령어를 자유자재는 아니지만 부족하진 않을 정도로 다루고 싶다는 생각이 들어 블로그에 잠깐 정리하려 한다.

 

날짜 출력 형식 옵션


기본 명령어 date를 치면 된다. 하지만 이걸로는 많이 부족하다. 출력 형식을 지정해서 다양하게 꾸며보자.

 

출력 형식 지정법은 date +"포맷" 형식을 따른다. 아래는 예시이다.

date +'%Y-%m-%d %H:%M'
# 2022-04-25 22:59

 

대표적인 포맷은 다음과 같다.

 

%a : 축약된 요일 

%A : 요일 풀네임

%b, %h : 축약된 월 이름

%B : 월 풀네임

%c : 로케일의 날짜 및 시간

%C : 마지막 두 자리를 제외한 %Y와 유사

%d : 일 

%D : 날짜  (%m/%d/%y 와 동일)

%H : 24시간

%I : 12시간

%j : 일 (365)

%m : 월

%M : 분

%P : AM/PM

%y : 연도 마지막 2자리

%Y : 연도 4자리

 

모든 옵션들은 아래에 있는 man 페이지를 참고하자.

https://man7.org/linux/man-pages/man1/date.1.html

 

date(1) - Linux manual page

date(1) — Linux manual page DATE(1) User Commands DATE(1) NAME         top date - print or set the system date and time SYNOPSIS         top date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] DESCRIPTION         to

man7.org

 

에포크 컨버터


현재 날짜까지의 초 수를 인쇄할려면 +%s 를 이용하고, 초를 날짜로 변환할려면 date -d @[초] 로 실행한다.

 

 

시간대 지정하기


임시로 시간대를 지정한 다음 시간대에 맞추어 출력을 할 수도 있다. 여기서 지원되는 시간대는 /usr/share/zoneinfo 에서 확인할 수 있다. 나의 경우에는 도커 이미지 안에서 시간대를 지정하는 작업을 했는데, 여기서는 apk add --no-cache tzdata 를 이용해서 timezone 관련 패키지를 설치 후 적용했다.

TZ='Asia/Seoul' date +'%Y-%m-%d %H:%M KST'
# 위 명령어를 작성하면 서울의 시간대로 결과가 출력된다.

 

시간 설정에 관한 내용은 아래 링크의 알파인 리눅스 공식문서를 참고했다.

https://wiki.alpinelinux.org/wiki/Setting_the_timezone

 

Setting the timezone - Alpine Linux

This material is obsolete ... Please feel free to help us make an up-to-date version. (Discuss) Timezone setting is now handled by Setup-alpine#setup-timezone Note: Only for NON uclibc installs!!! glibc based installs use different timezone setup. apk add

wiki.alpinelinux.org

 

반응형