{"id":948,"date":"2013-03-18T22:44:17","date_gmt":"2013-03-18T21:44:17","guid":{"rendered":"http:\/\/www.butschek.de\/?p=948"},"modified":"2013-03-18T22:45:09","modified_gmt":"2013-03-18T21:45:09","slug":"rettet-das-datum","status":"publish","type":"post","link":"https:\/\/www.butschek.de\/2013\/03\/18\/rettet-das-datum\/","title":{"rendered":"Rettet das Datum!"},"content":{"rendered":"

Das kleine Kommando ‚date‘ der Linux-Shell wird oft m\u00e4chtig untersch\u00e4tzt. Man kann das Ausgabeformat setzen und sogar das Datum relativ zum heutigen Tag bestimmen. Hierf\u00fcr gibt es viele Anwendungsf\u00e4lle:<\/p>\n

# Datum ausgeben\r\ndate\r\nMon Mar 18 20:00:00 CET 2013<\/pre>\n
# Das Datum von gestern\r\ndate -d \"yesterday\"\r\nSun Mar 17 20:00:00 CET 2013<\/pre>\n
# Das Datum von vor 2 Tagen\r\ndate -d \"2 days ago\"\r\nSat Mar 16 20:00:00 CET 2013<\/pre>\n
# Das Datum im ISO-Format\r\ndate +\"%Y-%m-%d\"\r\n2013-03-18<\/pre>\n

Hier nun eine Kombination daraus:<\/p>\n

# Das Datum von gestern im ISO-Format\r\ndate +\"%Y-%m-%d\" -d \"yesterday\"\r\n2013-03-17<\/pre>\n

Nun erzeugen wir einen Dateinamen:<\/p>\n

date +\"something-%Y-%m-%d.log\" -d \"yesterday\"\r\nsomething-2013-03-17.log<\/pre>\n

Wenn wir den Namen in einer Variable ben\u00f6tigen:<\/p>\n

FILENAME=$(date +\"something-%Y-%m-%d.log\" -d \"yesterday\")\r\necho \"$FILENAME\"<\/pre>\n

Ein anderer Anwenungsfall: Bestimmen wir die Zeit zwischen 2 Zeitpunkten:<\/p>\n

START=$(date \"+%s\")\r\n(do something)\r\nENDE=$(date \"+%s\")\r\nlet \"DIFF = $ENDE - $START\"\r\necho \"$DIFF Sekunden\"<\/pre>\n

Nun erhalten wir die Zeit-Differenz in Sekunden. Aber was sagt uns schon 2800 Sekunden? Auch hier kann date helfen, die Zeit umzurechnen:<\/p>\n

date -d \"00:00:00 $DIFF seconds\" \"+%H:%M:%S\"\r\n00:46:40<\/pre>\n

Das obige Script lief also 46 Minuten und 40 Sekunden. So l\u00e4\u00dft sich dem n\u00e4chtlichen Backup-Script schnell beibringen, wie es seine Laufzeit auszugeben hat.<\/p>\n

Noch ein Trick: Mit folgendem Befehl kann man die 3 Variablen $DAY, $MONTH und $YEAR in einer Zeile setzen:<\/p>\n

eval $(date \"+DAY=%d; MONT=%m; YEAR=%Y\")<\/pre>\n

Nun l\u00e4\u00dft sich mit ‚echo $YEAR‘, ‚echo $MONT‘ oder ‚echo $DAY‘ das Datum im Script abfragen.<\/p>\n

Ach ja, wie alt bin ich eigentlich?<\/p>\n

BIRTHDAY=\"1975-01-10\"\r\n\r\nBDAY_SEC=$(date \"+%s\" -d \"$BIRTHDAY\")\r\nNOW_SEC=$(date \"+%s\")\r\n\r\nlet \"DIFF_SEC = $NOW_SEC - $BDAY_SEC\"\r\necho \"Alter: $DIFF_SEC Sekunden\"\r\n\r\nlet \"DIFF_DAYS = $DIFF_SEC \/ 60 \/ 60 \/ 24\"\r\necho \"Alter: $DIFF_DAYS Tage\"<\/pre>\n

Es gibt so viele Anwendungsf\u00e4lle. Also, rettet das Datum! :-)<\/p>\n

Mehr zum Thema date: hier<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

Das kleine Kommando ‚date‘ der Linux-Shell wird oft m\u00e4chtig untersch\u00e4tzt. Man kann das Ausgabeformat setzen und sogar das Datum relativ zum heutigen Tag bestimmen. Hierf\u00fcr gibt es viele Anwendungsf\u00e4lle: # Datum ausgeben date Mon Mar 18 20:00:00 CET 2013 # Das Datum von gestern date -d „yesterday“ Sun Mar 17 20:00:00 CET 2013 # Das […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,5],"tags":[19,45,66],"_links":{"self":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/948"}],"collection":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/comments?post=948"}],"version-history":[{"count":2,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/948\/revisions"}],"predecessor-version":[{"id":950,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/948\/revisions\/950"}],"wp:attachment":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/media?parent=948"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/categories?post=948"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/tags?post=948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}