Я запускаю ntp update, одно за другим (с секундами между ними). В журнале я вижу, что всегда есть смещение, даже если обновление было запущено несколько секунд назад.
Почему так и есть шанс получить нулевое смещение?
grep ntpd /var/log/syslog
Nov 22 15:12:01 test ntpdate[3363]: adjust time server 91.189.94.4 offset 0.002939 sec
Nov 22 15:12:22 test ntpdate[3368]: adjust time server 91.189.94.4 offset -0.002787 sec
Nov 22 15:12:47 test ntpdate[3372]: adjust time server 91.189.94.4 offset 0.002498 sec
Nov 22 15:13:17 test ntpdate[3379]: adjust time server 91.189.94.4 offset -0.001611 sec
Nov 22 15:13:53 test ntpdate[3385]: adjust time server 91.189.94.4 offset -0.002720 sec
Получить нулевое смещение практически невозможно. Вместо использования ntpdate вам следует просто рассмотреть возможность запуска ntpd в фоновом режиме. Запуск ntpdate в cron - не лучшая идея для точного определения времени вашего сервера.