하루 중 특정 시간에만 발생하는 소프트웨어 측면을 테스트해야 합니다. 하루 종일 기다리기보다는(새벽 2시에 도착) 시간을 바꾸고 싶었습니다.
하지만 난 바꾸지 않는 게 좋을 것 같아영구적인.
시간을 변경한 다음 다시 변경할 수 있다는 것을 알고 있지만 date
더 좋은 방법이 있습니까?
문제의 운영 체제는 가상 머신에서 실행되는 RHEL6입니다.
답변1
라는 도서관이 있습니다.libfaketime
(반품GitHub에서)를 사용하면 시스템이 애플리케이션에 특정 시간을 보고하도록 할 수 있습니다. 프로그램 실행 중에 시스템이 고정된 시간을 보고하도록 하거나 특정 시간(예: 01:59:30)에 시계를 시작할 수 있습니다. 기본적으로 faketime 라이브러리를 라이브러리 로더를 통해 프로그램의 메모리 이미지에 연결하면 시스템 시간과 관련된 모든 시스템 호출을 고유한 방식으로 캡처하고 처리합니다. 좀 빠지는변화시스템 시간인데 시간이 바뀌었어요보고서실행 중인 다른 항목에 영향을 주지 않고 특정 애플리케이션에 적용할 수 있습니다. 이는 아마도 여러분이 정말로 원하는 것일 것입니다(그렇지 않으면 전역 시스템 시간을 변경하지 않을 이유가 없습니다).
이것을 사용하는 방법에는 여러 가지 변형이 있을 수 있지만 다음과 같습니다.libfaketime을 사용하여 프로세스가 생각하는 시간을 변경하세요.이를 시험해 볼 수 있는 샘플 코드와 함께 매우 포괄적인 목록이 있습니다. 당신이 무엇을 찾고 있는지 알고 있다면 구글은 몇 가지 예를 찾아낼 수도 있을 것입니다.
RHEL 저장소를 통해 사전 패키지되지 않은 것 같지만 예를 들어 다음과 같습니다.데비안은 패키지 이름으로 제공합니다.faketime
. 또한 소스에서 직접 빌드할 수 있는 것처럼 보입니다(분명히 단계 configure
나 그와 유사한 것이 필요하지도 않습니다).
답변2
가장 먼저 하고 싶은 일은설치 ntp
서비스원격 서버와 시간을 동기화합니다. 그런 다음 서비스를 중지하고 날짜를 수동으로 변경한 후 서비스를 다시 시작해 보세요.
service ntpd stop
date -s "Aug 11 2012"
[ do stuff ]
service ntpd start