본문 바로가기

Windows-related

시간동기화 cmd 명령



설인데도 불구하고 출근하여 24시간 모니터링(그냥 대기..)을 하게 되어서 post 한다.


이번 포스트는 Windows에서 시간동기화에 관련된 내용으로
1. cmd에서의 시간동기화 명령.
2. 내가 사용하고 있는 powerpro에서 동기화버튼 생성
으로 나뉜다.





주 입력도구가 키보드였던 시대에서 본격적인 마우스 시대를 열었다고 평가받는 Windows 이지만
아직까지도 cmd.exe ( command line, 명령프롬프트 )를 염두에 두고 만들어진
심지어는 cmd에서만 돌아가는 프로그램들이 상당수 있다.

그래서 시간과 노력을 들여 공부해본다면
windows에서 기본으로 제공하는 cmd명령어나 프로그램으로도 상당히 많은 것을 할 수 있다.
(물론 그럴만한 가치가 있는지는 개인마다 다르겠지만)


작년 11월부터 일하게된 새부서에서는
납품한 네트워크 보안장비를 정기점검하는 일이 많은데
보안상의 이유로 폐쇄망에 들어가거나
폐쇄망이 아니더라도 공인 IP를 주지 않는 경우가 대부분이라
장비에서 외부(인터넷)로 혹은 외부에서 장비로 접속이 안되는 경우가 대부분이다.
그래서 시간이 지나면 장비의 시간이 실제 시간과 달라지는 경우가 있는데
이런 시간오차가 장비의 동작 자체에 크게 영향을 주지는 않지만
로그가 발생하는 시간이 실제 시간과 다르기 때문에
추후 로그분석시 어려움이 발생할 수 있다.

이러한 이유로
정기점검시에는 장비의 시간을 동기화하는 경우가 많다.
장비가 외부로 접속을 못하기 때문에
점검하기 위해 장비에 접속한 엔지니어 혹은 관리자의 PC시간을 기준으로 동기화를 하게된다.

다만 문제는 엔지니어의 PC도 시간이 틀릴 수가 있다는 것이다.

시간 동기화를 하기 위해서
트레이의 시계를 더블클릭으로 열어서 동기화버튼을 누르는 게 어찌나 귀찮은지...
그리고 동기화 오류가 나는 경우도 얼마나 많은지...
그렇다고 동기화하는 잠깐을 위해서 다른 프로그램을 설치하기도 좀 그렇고...

별다른 프로그램을 쓰지 않더라도
cmd에서 다음과 같은 명령으로 시간을 동기화 할 수 있다.


w32tm.exe /resync

이 명령을 사용하면 트레이의 시계에 설정되어 있는 time server와 동기화를 진행해주므로
트레이 시계를 더블클릭하고 인터넷 시간 탭을 열어서 지금 업데이트를 눌러주는
긴 과정을 어느정도 줄일 수 있다.

다만 windows에서 기본으로 설정되어 있는 time server와 동기화할때 실패하는 경우가 많으므로
다른 서버를 사용하는 것이 좋다.

한국에서는 한국표준시 time server인 time.kriss.re.kr를 사용하거나
표준은 아니지만 time.bora.net를 사용하는 것이 좋다.
(time.kriss.re.kr 도 동기화 안되는 경우가 상당수 있다.)

time server를 변경/추가하기 위해서는
그림처럼 서버 항목에 time.bora.net을 입력한 뒤 지금 업데이트 버튼을 눌러준다.
동기화에 성공한다면 그림처럼 자동으로 서버가 목록에 등록된다. 

이렇게 등록이 되고 나면 이후에 동기화명령어를 실행할 때 time.bora.net에 동기화한다.






그렇다면 동기화 해줄때마다
cmd를 열어서 w32tm.exe /resync를 입력해주어야 한다는 것인데
이 역시 만만찮게 귀찮다.

뭐.. 배치파일로 만들어서 빠른실행에 등록해놓고 쓰면 되겟지만
이런 자잘한 명령어가 생길때마다 파일을 생성하고 아이콘을 등록하고...
깔끔하다는 느낌이 안든다.
(절대로 주관적인 생각이다. 개인적으로 빠른 실행 도구모음을 안쓰기도 하고..)

그래서 나의 필수 프로그램중 하나인 powerpro에 등록하였다.
썬더버드, 토탈커맨더, 파워프로 이 세가지는 메신저나 백그라운드용 프로그램을 제외하면
PC가 켜질 때 실행해서 PC를 끌 때 종료하는 프로그램이다.

powerpro에서 cmd명령을 단축키 혹은 버튼으로 실행시키는 smart한 방법이 있겠지만
아직 powerpro 공부를 덜 한 나로서는 방법을 알지못해
cmd.exe를 실행시키면서 그 parameter로 "w32tm.exe /resync"를 넘겨주도록 했는데
단점이 동기화 결과를 보기도 전에 창이 닫혀버리는 것이다.

그래서 cmd.exe /k "w32tm.exe /resync" 로 창이 닫히지 않도록 옵션을 주었다.
그랬더니 이번엔 cmd가 w32tm.exe 종료 후 다음명령을 기다리고 있어서
exit을 해주거나 마우스로 창을 꺼줘야했다.

또 다시 귀차니즘이 발동...
pause를 넣고 exit을 넣어서 아무키나 누르면 종료되도록 해야지...
했더니 powerpro에서 cmd.exe에 w32tm.exe를 parameter로 넘겨주다보니까
pause와 exit까지 w32tm.exe와 함께 같이 한줄에 넘겨주어야 했다.

기억을 뒤지고 뒤져서
여러 명령을 한줄에 넘기는 방법을 떠올려서 한줄에 해결..
&로 명령을 묶어주면 한줄에 여러명령을 쓸 수 있다.

아래의 두 과정은 동일한 결과를 같는다.


w32tm.exe /resync
pause
exit


w32tm.exe /resync & pause & exit


powerpro 고수들이 보면 비웃을지도 모를 방법이지만

공부할 것이 차고 넘치는 내게 powerpro 스크립트까지 공부하기에는 역부족이라
이렇게 설정하고 끝냈다.

이제 창 오른쪽 상단에 항상 떠 있는 powerpro에서 생각날 때마다 한번씩 눌러주기만 하면 된다.




PS :
시간동기화 프로그램을 따로 사용하겠다면 여러 프로그램을 시도해 볼 수 있다.
UTCk가 그나마 유명한 듯 하다.

PS 2 :
지금은 안쓰지만 예전에는 트레이 시계에 초가 나오지 않아서 불만이었던 적이 있다.
이를 해결하기 위해서 TClock Light라는 프로그램을 쓴적이 있는데
이 프로그램에 시간동기화 기능이 내장되어 있기 때문에 TClock Light를 쓴다면 손쉽게 동기화 할 수 있다.
결국 TClock Light를 다시 깔고 말았다.. 

PS 3 : 
깊게 들어가면 틀린얘기이겠지만
일반 사용자 입장에서 볼때
bora.net은 LG U+,
kornet.net은 Olleh KT,
hananet.net 은 SK Broadband라고 보면된다.
cmd.exe 에서 ipconfig를 실행해보면 회선을 확인할 수 있다.


이렇게 kornet으로 나온다면 회선이 KT 회선이라고 보면 거의 맞다.
(근데 재밌는 건... 이 캡쳐를 뜬 곳이 LG U+ 건물이라는 것이다.)