Este script informará quando ocorre um desvio de tempo e a diferença na árvore de processos, e isso deve ajudar a identificar se isso é causado por um processo que altera a hora do sistema. Ele será impresso no terminal, assim como será registrado no timedrift.log dentro do diretório de trabalho atual.
#!/bin/bash
oldTime="$(date +%s)"
oldPsOutput="$(ps faux)"
while true; do
sleep 1;
currentTime="$(date +%s)"
oldTimeplusfive="$((($oldTime+5)))"
currentPsOutput="$(ps faux)"
if [[ "$currentTime" -lt "$oldTime" || "$currentTime" -gt "$oldTimeplusfive" ]]
then
(
echo -e '\n\n======================='
echo "currentTime=$currentTime oldTime=$oldTime oldTimeplusfive=$oldTimeplusfive"
echo '-----------------------'
echo "$oldPsOutput"
echo '::::::::::::::::::::::::::'
echo "$currentPsOutput"
) | tee -a timedrift.log
fi
oldPsOutput=$currentPsOutput
oldTime=$currentTime
done
O crédito ao script original no Unexplainable time aumenta no bug CRON que Stone mencionou como comentário.
Você também pode comentar como se estivesse usando o rsyslog e, em caso afirmativo, qual versão? Você vê isso fora do reino do rsyslog (ou seja, logs do apache, etc). Este bug parece simmlar, e seria bom confirmá-lo ou descartá-lo de qualquer forma.