有一個腳本可以在Linux服務器上同步時間(CentOS 6)並在日誌中寫入偏移量。我想在10天后將當前日誌(ntp.log)複製到舊的(ntp.log-date),但這不起作用。腳本繼續寫入一個文件而不旋轉。它每5分鐘運行一次cron。我使用python版本2.6。我特別設置了以秒爲單位的間隔來檢查。我究竟做錯了什麼?logging.handler.TimedRotatingFileHandler從不旋轉日誌
#!/usr/bin/env python
import ntplib
import logging
from logging.handlers import TimedRotatingFileHandler
from time import ctime
import os
import socket
hostname = socket.gethostname()
logHandler = TimedRotatingFileHandler('/root/ntp/log/ntp.log', when='S', interval=300)
logFormatter = logging.Formatter('%(asctime)s %(message)s', datefmt='%d/%m/%Y %H:%M:%S')
logHandler.setFormatter(logFormatter)
logger = logging.getLogger('MyLogger')
logger.addHandler(logHandler)
logger.setLevel(logging.INFO)
c = ntplib.NTPClient()
response = c.request('1.rhel.pool.ntp.org')
logger.info('| %s time offset is | %s' % (hostname, response.offset))
datestr = ctime(response.tx_time)
os.system('date -s "%s"' % datestr)
我強烈建議您使用'ntpd'和'logrotate',而不是另起爐竈。 'ntpd'的邏輯比周期性的一次性「同步」更健全。 –
關於'logrotate'必須看到,我不能使用'ntpd',我需要同步'日誌 – reddaemon
'ntpd'比「同步」更聰明,它使用「內核時間規則」API並且被設計爲實際*讓你一勞永逸地忘記同步的東西*(http://www.eecis.udel.edu/~mills/ntp/html/discipline.html#house:「如果連續運行,一個NTP客戶端家庭或辦公室環境中的快速LAN可以在1毫秒內保持名義上的同步。「)不用擔心,它會在系統時鐘執行任何操作時記錄下它。 –