Fehler nach der Zeit umstellung $(date +%s)

Bash, Shell, PHP, Python, Perl, CGI
amiga1200
Posts: 203
Joined: 2007-01-13 19:58

Fehler nach der Zeit umstellung $(date +%s)

Post by amiga1200 » 2015-03-29 13:32

Problem nach der Zeit Umstellung.

Mein Suse 11 hat die Zeit selbst umgestellt, gebe ich im Shell date ein
bekomme ich die richtig Zeit, Suse holt sich die Zeit aus dem I-Netz.

Aber warum funktioniert mein Shell-Script dann nicht mehr?

Code: Select all

timestamp=$(date +%s)
 
 sql1="$(echo "SELECT count(*)  AS menge FROM jobs  WHERE status= 1 AND von_timestamp<$timestamp  " | /usr/bin/mysql  -u root -ppw tb )"
menge=${sql1//menge};
if [ $menge -gt 0 ]
then
#Job bearbeiten


der Job fängt eine Stunde später an, als von_timestamp von mysql
also fehlt hier timestamp=$(date +%s) 3600 Sec.
mann kann ich natürlich 3600 zurechnen, und in Herbst das wieder entfernen,
aber ich dachte echo $(date +%s) und echo date wird aus der selben Uhr gezogen.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Fehler nach der Zeit umstellung $(date +%s)

Post by Joe User » 2015-03-29 19:43

Welcher Zeitzone hast Du Dein System während der Installation zugeordnet?
Wird die Systemzeit regelmässig aktualisiert? Wenn ja, wie?
Welche locale gilt als Systemdefault und welche für Deinen Loginuser?


Apropos Zeit: Es wird Zeit für ein Systemupgrade auf ein aktuelles openSUSE 13.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Fehler nach der Zeit umstellung $(date +%s)

Post by daemotron » 2015-03-30 14:46

Genau deswegen arbeitet man bei sowas besser mit UTC...

Code: Select all

timestamp=$(date -u '+%s')

MySQL muss dann natürlich auch entsprechend konfiguriert sein (siehe http://dev.mysql.com/doc/refman/5.6/en/ ... pport.html), bzw. man nutzt dann hier die entsprechenden UTC-Funktionen (siehe http://dev.mysql.com/doc/refman/5.6/en/ ... -timestamp)
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

amiga1200
Posts: 203
Joined: 2007-01-13 19:58

Re: Fehler nach der Zeit umstellung $(date +%s)

Post by amiga1200 » 2015-03-30 16:14

Leider funktioniert die Edit-Funktion im Forum nicht, sonst hätte ich meine Schreibfelder im Post entfernt.

Es ist schon Suse 13.1
Beim installieren habe ich natürlich die Richtige Zeitzone gewählt
Eben noch mal unter Date and Time überprüft
Region: Europe
Time Zone: Germany

"Wird die Systemzeit regelmässig aktualisiert? Wenn ja, wie?"
Früher einfach durch date -s
aber auf den Server habe ich ein ntp (de.pool.ntp.org) eingerichtet,
daher hatte mein Suse nach die Zeitumstellung automatisch die richtig Zeit

"MySQL muss dann natürlich auch entsprechend konfiguriert sein"
an mysql hat es glaube nichts zu tun, den die Werte Timestamp habe ich aus Uhrzeit und Datum über php selbst berechnen,
zumal die Einträge schon älter sind.

ich habe erst mal 3600 dazu gezählt, damit die Stunde ausgeglichen wird.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Fehler nach der Zeit umstellung $(date +%s)

Post by Joe User » 2015-03-30 20:23

amiga1200 wrote:Leider funktioniert die Edit-Funktion im Forum nicht, sonst hätte ich meine Schreibfelder im Post entfernt.

Kannst Du mir das per PN näher erläutern, ich kann es leider nicht reproduzieren. Danke.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Fehler nach der Zeit umstellung $(date +%s)

Post by Joe User » 2015-03-30 20:30

PHP verwendet die Systemzeit und besitzt IIRC erst seit 5.4 oder 5.5 ein standardmässiges, brauchbares Zeitzonenhandling, sofern die Zeitzone in der php.ini korrekt gesetzt ist.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.