時計がおかしい
ntp で設定できないサーバがあるというので調査。
で、ntpdate で強制的に同期したあとに ntpd を起動しても、しばらくしてから ntpq -p とかすると offset が 5000 とかになっている。なんで?
ちょっとプログラムを書いて実験。
#!/usr/bin/env python import sys import time def main(args): now = time.time() base = float(args[0]) print abs(now - base) if __name__ == '__main__': main(sys.argv[1:])
import sys import time import subprocess import optparse import itertools DEFAULT_REPEAT = 0 DEFAULT_INTERVAL = 10 def main(args, opts): server = args[0] if opts.n <= 0: it = itertools.count() else: it = xrange(opts.n) interval = opts.d for _ in it: now = time.time() cmd = ['ssh', server, 'python', '~/tmp/time_diff.py', str(now)] subprocess.call(cmd) time.sleep(interval) if __name__ == '__main__': from optparse import OptionParser parser = OptionParser() parser.add_option('-n', dest = 'n', help = 'repeat count', type = int, default = DEFAULT_REPEAT) parser.add_option('-d', dest = 'd', help = 'interval time', type = 'float', default = DEFAULT_INTERVAL) (opts, args) = parser.parse_args() main(args, opts)
精度よくとりたいなら ssh じゃなくてもっと Lightweight な仕組みを用意するべきだろうけど、とりあえず。
で結果。
% ssh-add % python time_check.py -n 10 -d 10 server 190.698225021 190.980038881 191.252182961 191.522819996 191.792335987 192.057996988 192.313823938 192.596374035 192.894083977 193.153176069
なんだこれ。たった90秒で2.5秒近くずれているじゃねーか。ハードウェアの問題かなぁ。