Busybox und date

Status
Für weitere Antworten geschlossen.

famichael

Benutzer
Mitglied seit
15. Nov 2012
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Hallo miteinander,

habe hier ein Script, welches bei date den Parameter -d verwendet.
Das date der Busybox scheint die Parameter '1 day ago' und '1 week ago' jedoch nicht zu unterstützen.

lday=`date +'snapshot-%Y-%m-%d-%H' -d '1 day ago'`
lweek=`date +'snapshot-%Y-%m-%d-%H' -d '1 week ago'`


Habt ihr eine Idee, wie ich das umsetzen kann?

Michael
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
entweder sich das Kommando per IPKG dazu installieren oder mit der Shell (expr, awk oder ähnliches) ausrechnen

Itari
 

famichael

Benutzer
Mitglied seit
15. Nov 2012
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Danke für die superschnelle Antwort.
Mit der Shellprogrammierung ist es bei mir nicht so weit her :(
Könnte ich da Unterstützung haben?

Michael
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ausgabe der Sekunden seit 1.1.1970 mit %s:

d=$(date +%s)

Berechnung des Vortages durch Abzug von 86400 Sekunden (24 * 60 *60):

d1=$(expr "$d" - 86400)

Umwandlung der Sekunden in einen Datumwert (nur zur Veranschaulichung):

date -D %s -d $d1

die letzte Zeile kannst dann wieder um die Strings ergänzen:

lday=`date +'snapshot-%Y-%m-%d-%H' -D %s -d "$d1"` bzw. lday=$(date +'snapshot-%Y-%m-%d-%H' -D %s -d "$d1")

für die Woche machst es halt ähnlich

Itari
 

famichael

Benutzer
Mitglied seit
15. Nov 2012
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Super schnell !
Kannst Du mir das auch noch in einer Zeile unterbringen?:)

Michael
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
ja *gg*:

d=$(date +%s);d1=$(expr "$d" - 86400);lday=$(date +'snapshot-%Y-%m-%d-%H' -D %s -d "$d1")

Itari
 

famichael

Benutzer
Mitglied seit
15. Nov 2012
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Ich meinte eigentlich, in einer Zuweisung aber egal, scheint zu funktionieren :)

Was trinkst Du?
Michael
 

famichael

Benutzer
Mitglied seit
15. Nov 2012
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Was mir noch fehlt zu meinem Glück:

Die Ausgabe ins Logfile schreiben.

Auf 'nem EISfair war der Eintrag im crontab

# Every four hours would be:
# 0 0,4,8,12,16,20 * * * /usr/local/bin/snapshot >/dev/null 2>&1

aber auf der DS213 sehe ich nichts im logfile.

Noch eine Idee?

Michael
 

werschi

Benutzer
Mitglied seit
19. Nov 2012
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Der Crontab Eintrag ist auskommentiert, aus der Zeile mit dem Befehl das Kommentarzeichen "#" entfernen.
 

famichael

Benutzer
Mitglied seit
15. Nov 2012
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Das wusste ich schon - tut mir leid für die verwirrende Darstellung. Habe ich nur kurz aus der Beschreibung des Scriptes herauskopiert.
Mir ging es eher um >/dev/null 2>&1, welches auf dem EISfair ins logfile schreibt. Gibt es bei der DS213 etwas vergleichbares?
Michael
 

werschi

Benutzer
Mitglied seit
19. Nov 2012
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Hm, ich kenne EISfair zwar nicht, aber /dev/null ist eigentlich der Mistkübel unter Linux, alles was dorthin geschrieben wird verschwindet auf nimmerwiedersehen.

Mit >/dev/null 2>&1 wird aber nur STDOUT und STDERR umgeleitet, es könnte durchaus sein das in /usr/local/bin/snapshot Funktionen fürs logging definiert sind. Ist das ein script? Wenn ja was steht da drin?

Denkbar wäre das dieses Script zb. mittels syslog loggt.
 

famichael

Benutzer
Mitglied seit
15. Nov 2012
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Soweit ich sehen kann, steht im Script nur echo >&2 "blabla"
Wohin muss STDOUT und STDERR umgeleitet werden, damit es im log auftaucht?
Michel
 

werschi

Benutzer
Mitglied seit
19. Nov 2012
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Welches Log meinst du genau? /var/log/messages? da könntest du einfach so reinschreiben, ich würde aber syslog und das kommando "logger" verwenden.

Oder meinst du das was du unter "Systemprotokolle" siehst? Das wäre das File /var/log/synosys.log, aber da kannst du nicht einfach so reinschreiben, das ist eine Binär Datei. Details dazu siehe hier:

http://forum.synology.com/enu/viewtopic.php?f=39&t=21983
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat