본문 바로가기

OS/Linux

[ubuntu] 어플리케이션 단위로 현재 시간 변경하기 - libfaketime

패키지 설치

root@CHATREEY-AN2P:~# apt install libfaketime

 

라이브러리 설치 위치 확인

root@CHATREEY-AN2P:~# dpkg -L libfaketime
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/faketime
/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1
/usr/lib/x86_64-linux-gnu/faketime/libfaketimeMT.so.1
/usr/share
/usr/share/doc
/usr/share/doc/libfaketime
/usr/share/doc/libfaketime/README.gz
/usr/share/doc/libfaketime/changelog.Debian.gz
/usr/share/doc/libfaketime/copyright

 

 

실행 방법

리눅스에서 LD_PRELOAD 는 특정 라이브러리를 프로그램이 실행될 때 미리 로드하도록 지정하는 환경 변수이다. 

LD_PRELOAD로 libfaketime 라이브러리를 로드한다.

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1

 

그 후 해당 세션에 적용할 시간 정보를 추가한다. 여기서는 15일 전으로 설정한다.

export FAKETIME="-15d"

 

date 명령으로 시간 변경이 반영 되었는지 확인해본다.

root@CHATREEY-AN2P:/# date
Sat Jan 11 13:32:22 KST 2025
root@CHATREEY-AN2P:/# export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1
root@CHATREEY-AN2P:/# export FAKETIME="-15d"
root@CHATREEY-AN2P:/# date
Fri Dec 27 13:38:38 KST 2024

 

 

옵션

만약 특정 시간으로 시간을 고정하려면 아래 형식으로 추가하면 된다.

export FAKETIME="2026-12-25 12:30:00"

 

ex) 시간이 고정된다. 

root@CHATREEY-AN2P:/# export FAKETIME="2026-12-25 12:30:00"
root@CHATREEY-AN2P:/# date
Fri Dec 25 12:30:00 KST 2026
root@CHATREEY-AN2P:/# date
Fri Dec 25 12:30:00 KST 2026
root@CHATREEY-AN2P:/# date
Fri Dec 25 12:30:00 KST 2026
root@CHATREEY-AN2P:/# date
Fri Dec 25 12:30:00 KST 2026
root@CHATREEY-AN2P:/# date
Fri Dec 25 12:30:00 KST 2026

 

시간이 흐르게 하려면 @ 를 추가하면 된다. 

export FAKETIME="@2026-12-25 12:30:00"

 

 

 

https://github.com/wolfcw/libfaketime

 

GitHub - wolfcw/libfaketime: libfaketime modifies the system time for a single application

libfaketime modifies the system time for a single application - wolfcw/libfaketime

github.com