[bash] Datumsarithmetik möglich?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

[bash] Datumsarithmetik möglich?

Beitrag von MoonKid » 31.12.2012 11:10:21

Da cron+anacron meine Bedürfnisse nicht erfüllen kann, fcron nicht mehr gepflicht wird und meine Eigenentwicklung (wxCron) Schrott ist, versuche ich jetzt einen anderen Weg.

Ich möchte das meine Backupscripte selbst entscheiden/berechnen, ob sie ihr Backup ausführen sollen oder nicht.

Dafür muss ich mit Datum und Zeiträumen rechnen können. Geht sowas?

Jedes script weiß, wie oft (Intervalle) es laufen soll und vergleich diesen Wert mit dem Zeitstempel seiner letzten Ausführung. Klingt eigentlich gar nicht so schwer.
Auf diesem Wege kann das Script seine wiederholte Ausführung bei einem Fehler des Backups auch selbst steuern.

Haltet ihr das für grundsätzlich machbar?

Könnt ihr mir ein paar Fachwörter und Kommandos reinschmeißen, nach dennen ich dann suchen kann?

Danke.

Benutzeravatar
shoening
Beiträge: 916
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: [bash] Datumsarithmetik möglich?

Beitrag von shoening » 31.12.2012 11:20:24

Hi,

hilft Dir das hier: http://www.walkernews.net/2007/06/03/da ... l-scripts/

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

Re: [bash] Datumsarithmetik möglich?

Beitrag von MoonKid » 31.12.2012 11:46:11

Mhm... "date" sieht schon mal gut aus.
Aber ich sehe hier keine Zeiträume.

Wenn ich einen Zeitstepmpel (z.B. in UTC Zeit) aus einer Datei auslese und mi der aktuellen Zeit vergleiche, möchte ich die z.B. die Anzahl der Stunden wissen, welche seit dem Zeitstempel vergangen sind.

Benutzeravatar
shoening
Beiträge: 916
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: [bash] Datumsarithmetik möglich?

Beitrag von shoening » 31.12.2012 13:26:47

Hi,

dann vielleicht so:

http://stackoverflow.com/questions/8903 ... ash-script

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

Re: [bash] Datumsarithmetik möglich?

Beitrag von MoonKid » 31.12.2012 14:08:44

Code: Alles auswählen

#!/bin/bash

# date +"%F %H:%M"

# 6. August 2012 um 18:23 in sekunden
date1=$(date --date="2012-08-06 18:23" +"%s")
# jetzt in sekunden
date2=$(date +"%s")

diff=$(($date2-$date1))

echo "$(($diff / 60 / 60)) hours $(($diff / 60)) minutes and $(($diff % 60)) seconds elapsed."
Ja, damit kann man was basteln.

Ich werde mir da ein schickes Script zu schreiben.

Aber mich wunderts, dass es sowas nicht schon gibt. Bin doch sicherlich nicht der erste, der mit Zeit rechnen möchte. ;)

Benutzeravatar
Phineas
Beiträge: 355
Registriert: 20.06.2012 20:26:19

Re: [bash] Datumsarithmetik möglich?

Beitrag von Phineas » 31.12.2012 16:58:59

Date kann auch direkt den Zeitstempel einer Datei lesen:

Code: Alles auswählen

Datei=DeineDatei
echo "$Datei wurde zuletzt vor $(($(date +%s)-$(date -r "$Datei" +%s))) Sekunden geändert"

MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

Re: [bash] Datumsarithmetik möglich?

Beitrag von MoonKid » 31.12.2012 18:14:08

Phineas hat geschrieben:Date kann auch direkt den Zeitstempel einer Datei lesen
Abgefahren. Dass muss ich ja gar keinen eigenen Zeitstempel anlegen, sondern immer nur ein "touch script_zeitstempel" machen und vorher ein "rm script_zeitstempel".

:hail:

Benutzeravatar
Phineas
Beiträge: 355
Registriert: 20.06.2012 20:26:19

Re: [bash] Datumsarithmetik möglich?

Beitrag von Phineas » 31.12.2012 18:49:10

MoonKid hat geschrieben:Aber mich wunderts, dass es sowas nicht schon gibt. Bin doch sicherlich nicht der erste, der mit Zeit rechnen möchte. ;)
Um die Frage zu beantworten und - dem Threadtitel folgend - OT:
Es wird daran liegen, dass es zum Zwecke von Bakups genügend Tools gibt, die eine eigene Datumsarithmetik komplett überflüssig machen.

MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

Re: [bash] Datumsarithmetik möglich?

Beitrag von MoonKid » 31.12.2012 19:07:38

Phineas hat geschrieben:Es wird daran liegen, dass es zum Zwecke von Bakups genügend Tools gibt, die eine eigene Datumsarithmetik komplett überflüssig machen.
Nenn mir eins. Ich habe über 10 Jahre lang viele probiert. Habe sogar 6 Jahre lang ein eigenes geschrieben, Mangels Fähigkeiten aber nie so ganz hinbekommen.

Witzigerweise, hab ich dann in vor einem Jahr in zwei Wochene eine bash-script-Lösung auf cygwin gebastelt. Macht alles was ich brauche. Zeitsteuerung läuft halt über den Taskplaner den es unter Linux nicht gibt.

Eigentlich traurig, das der windows-taskplaner mehr taugt, als cron und anacron zusammen.

Jetzt migriere ich auf Linux und stehe eben vor dem Taskplaner-Problem.

Benutzeravatar
goeb
Beiträge: 348
Registriert: 26.08.2006 18:12:08
Lizenz eigener Beiträge: MIT Lizenz

Re: [bash] Datumsarithmetik möglich?

Beitrag von goeb » 31.12.2012 20:15:03

MoonKid hat geschrieben:Dass muss ich ja gar keinen eigenen Zeitstempel anlegen, sondern immer nur ein "touch script_zeitstempel" machen und vorher ein "rm script_zeitstempel".
Du mußt die Datei vorher nicht löschen, touch ändert die modification time von bestehenden Dateien. Wenn die Datei nicht existiert wird sie nur eben nebenbei noch angelegt.

Benutzeravatar
Phineas
Beiträge: 355
Registriert: 20.06.2012 20:26:19

Re: [bash] Datumsarithmetik möglich?

Beitrag von Phineas » 31.12.2012 20:55:05

MoonKid hat geschrieben:Zeitsteuerung läuft halt über den Taskplaner den es unter Linux nicht gibt.
Ich würde einen entsprechenden Thread aufmachen:

Was will ich?
Was habe ich wie versucht?
Was klappt nicht?

Gerade dieses Forum ist voller Experten, die gerne und sehr kompetent helfen.

Antworten