Proxy가 존재하는 환경에서 리눅스 서버는 제대로 시간 동기화가 되지 않는다.

대개의 경우 ntpdate 등 시간 동기화 소프트웨어도 대부분 제대로 동작하지 않는다.

물론, 이것은 Proxy 설정과는 좀 다른 경우이지만 Proxy가 존재할 경우 종종 필요한 기능이다.

따라서 해당 카테고리에 정리해 놓았다.

 

방법은 간단하다.

단 sudo로 인해 패스워드를 물어보기 때문에 패스워드를 입력해서 실행한 후 곧바로 다시 실행해주는 것이 좋다.

앞 서 입력한 패스워드로 인해서 재실행 시에는 패스워드 입력을 스킵하고 바로 실행이 되기 때문이다.

sudo date -s "$(wget --no-cache -S -O /dev/null google.com 2>&1 | \
sed -n -e '/  *Date: */ {' -e s///p -e q -e '}')"

 

□ 상세 설명

아래 명령 wget을 실행하면 첫줄에 호출 시간과 함께 장황한 http 프로토콜 로그가 출력된다.

$ wget --no-cache -S -O /dev/null google.com 2

--2020-06-11 19:36:36--  http://google.com/
Connecting to 10.10.15.10:8080... connected.
Proxy request sent, awaiting response... 
  HTTP/1.1 301 Moved Permanently
  Location: http://www.google.com/
  Content-Type: text/html; charset=UTF-8
  Date: Thu, 11 Jun 2020 10:36:36 GMT
  Expires: Sat, 11 Jul 2020 10:36:36 GMT
  Cache-Control: public, max-age=2592000

반드시 google.com을 할 필요는 없으며 이를테면 naver.com이라든지, 신뢰성이 있는 어떤 사이트를 입력해도 가능하다.

 

아래 sed 명령은 스트림 편집 명령으로 Data로 시작하는 문장을 찾는다.

sed -n -e '/  *Date: */ {' -e s///p -e q -e '}'

 

따라서 아래와 같이 두 문장을 연결하여 수행하면 날짜 부분만 출력하게 된다.

$ wget --no-cache -S -O /dev/null google.com 2>&1 | \
  sed -n -e '/  *Date: */ {' -e s///p -e q -e '}'

Thu, 11 Jun 2020 10:41:01 GMT

 

해당 날짜를 data -s 의 입력값으로 전달하여 날짜를 변경하는 것이다.

반응형

'Linux > Proxy' 카테고리의 다른 글

Proxy setting, git  (0) 2023.06.04
Proxy setting, curl  (0) 2023.05.28
Proxy setting, npm (ubuntu 18.04)  (0) 2020.04.06
Proxy setting, jupyter notebook  (0) 2020.02.06
Proxy setting, conda (Windows)  (0) 2019.12.08

+ Recent posts