Skip to main content
added 14 characters in body
Source Link
uhoh
  • 552
  • 5
  • 20

I am writing a data logging python script and I would like it to find out if the system clock has been synchronized via NTP recently, and if not, to attempt to cause it to happen before proceeding.

Starting from this answer, I've found that for the status

os.system('sudo service ntp status')

will display the results on the console, but I don't know how I can get the python script to see if ntp is active or not, since this call returns only 0.

I could always just force a reset even if not needed using

os.system('sudo service ntp stop')
os.system('sudo ntpd -gq')
os.system('sudo service ntp start')

but it seems like a bad idea to do that if it wasn't necessary.

edit: using Raspbian GNU/Linux 8 (jessie)

Question: How can I test the status and then conditionally force a synchronization only if needed?

This answer suggests the package ntplib https://pypi.python.org/pypi/ntplib/ but I'm not sure if this is advisable or not, so I thought I'd ask before installing and running it, and I'd still have to guess the status by comparing the results to the system clock and deciding if the agreement were good enough or not. I'd still like to know if ntp is active and that it believes the synchronization is close.

I am writing a data logging python script and I would like it to find out if the system clock has been synchronized via NTP recently, and if not, to attempt to cause it to happen before proceeding.

Starting from this answer, I've found that for the status

os.system('sudo service ntp status')

will display the results on the console, but I don't know how I can get the python script to see if ntp is active or not, since this call returns only 0.

I could always just force a reset even if not needed using

os.system('sudo service ntp stop')
os.system('sudo ntpd -gq')
os.system('sudo service ntp start')

but it seems like a bad idea to do that if it wasn't necessary.

edit: using Raspbian GNU/Linux 8 (jessie)

How can I test the status and then conditionally force a synchronization only if needed?

This answer suggests the package ntplib https://pypi.python.org/pypi/ntplib/ but I'm not sure if this is advisable or not, so I thought I'd ask before installing and running it, and I'd still have to guess the status by comparing the results to the system clock and deciding if the agreement were good enough or not. I'd still like to know if ntp is active and that it believes the synchronization is close.

I am writing a data logging python script and I would like it to find out if the system clock has been synchronized via NTP recently, and if not, to attempt to cause it to happen before proceeding.

Starting from this answer, I've found that for the status

os.system('sudo service ntp status')

will display the results on the console, but I don't know how I can get the python script to see if ntp is active or not, since this call returns only 0.

I could always just force a reset even if not needed using

os.system('sudo service ntp stop')
os.system('sudo ntpd -gq')
os.system('sudo service ntp start')

but it seems like a bad idea to do that if it wasn't necessary.

edit: using Raspbian GNU/Linux 8 (jessie)

Question: How can I test the status and then conditionally force a synchronization only if needed?

This answer suggests the package ntplib https://pypi.python.org/pypi/ntplib/ but I'm not sure if this is advisable or not, so I thought I'd ask before installing and running it, and I'd still have to guess the status by comparing the results to the system clock and deciding if the agreement were good enough or not. I'd still like to know if ntp is active and that it believes the synchronization is close.

edited title
Link
uhoh
  • 552
  • 5
  • 20

Recommended way for a python script to check NTP update status, and initiate an update if necessary?

tag
Link
Milliways
  • 61.5k
  • 32
  • 108
  • 212
added 49 characters in body
Source Link
uhoh
  • 552
  • 5
  • 20
Loading
edited tags
Source Link
uhoh
  • 552
  • 5
  • 20
Loading
added 44 characters in body
Source Link
uhoh
  • 552
  • 5
  • 20
Loading
Source Link
uhoh
  • 552
  • 5
  • 20
Loading