Datum in Dateinamen übergeben

Hi zusammen,

ich bin gerade dabei, mein erstes Shellscript (bash) zu schreiben, was dann ein Backup einiger Dateien macht.
Dieses Vorgang soll in einem LOG file protokolliert werden.

Das Problem:
Wie kann ich das aktuelle Datum in den Dateinamen übergeben.
Die Datei heißt dann jeden Tag anders, also z.B.

backup-2000-12-16.log

Wie das Datum aussieht, ist dabei egal, backup-20001216.log oder sonstwie.

Gibt es eine Umgebungsvariable für das Datum?
„env“ hat mir nix dergleichen gezeigt.

Dank!

Moin,

Wie kann ich das aktuelle Datum in den Dateinamen übergeben.

Das Datum wird eh schon abgespeichert.

Gibt es eine Umgebungsvariable für das Datum?
„env“ hat mir nix dergleichen gezeigt.

date

Thorsten

Danke für nix, habs selber gefunden

Moin,

Wie kann ich das aktuelle Datum in den Dateinamen übergeben.

Das Datum wird eh schon abgespeichert.

Danke. Wie und Wo ???

Gibt es eine Umgebungsvariable für das Datum?
„env“ hat mir nix dergleichen gezeigt.

date

Das ist keine Umgebungsvariable

Thorsten

auch Moin.

danke für die ergiebige Antwort.
Inzwischen hab ich raus wie es geht:

#!/bin/bash
DATUM=date +%Y-%m-%d
touch backup-$DATUM.log

nix für ungut, ein Newbie findet auch mal ein Korn :wink:

AC

Moin,

Wie kann ich das aktuelle Datum in den Dateinamen übergeben.

Das Datum wird eh schon abgespeichert.

Danke. Wie und Wo ???

Schau Dir mal ein Directory mit „ls -l“ an. Fällt Dir was auf?

Gruss

Jens

Ratespiel?? :wink:)
Tach-chen Jens, lange nicht gesehen…

Schau Dir mal ein Directory mit „ls -l“ an. Fällt Dir was auf?

Gruss

Jens

ls -l

-rw-r–r-- 1 root root 1301 Jun 20 2000 xyz
-rw------- 1 root root 351 Dec 17 07:59 abc
-rw-r–r-- 1 root root 1124 Jun 20 2000 .exrc
-rw-r–r-- 1 root root 1273 Dec 17 07:44 .gtkrc
drwx------ 3 root root 4096 Dec 17 06:32 .kde
drwx------ 6 root root 4096 Dec 17 06:34 .kde2
-rw------- 1 root root 424 Dec 17 07:59 .kderc
-r-------- 1 root root 21 Dec 17 07:21 .kxmlrpcd

–snip–

was fällt mir auf?
Nun, einige Daten steht mit Jahresangabe da, andere nicht bzw. mit Uhrzeit.
Was noch ??

Und was kann ich damit im Zusammenhang mit meinem Ziel anfangen?

Bin schon gespannt auf Dein Reply mit Lösung.
Wird bestimmt was ganz elegantes :smile:) Bis bald. AC

Tach-chen Jens, lange nicht gesehen…

ls -l

-rw-r–r-- 1 root root 1301 Jun 20 2000 xyz
-rw------- 1 root root 351 Dec 17 07:59 abc
-rw-r–r-- 1 root root 1124 Jun 20 2000 .exrc
-rw-r–r-- 1 root root 1273 Dec 17 07:44 .gtkrc
drwx------ 3 root root 4096 Dec 17 06:32 .kde
drwx------ 6 root root 4096 Dec 17 06:34 .kde2
-rw------- 1 root root 424 Dec 17 07:59 .kderc
-r-------- 1 root root 21 Dec 17 07:21
.kxmlrpcd

–snip–

was fällt mir auf?
Nun, einige Daten steht mit Jahresangabe da, andere nicht bzw.
mit Uhrzeit.
Was noch ??

Und was kann ich damit im Zusammenhang mit meinem Ziel
anfangen?

Die Lösung des Rätsels ist weder elegant noch spektakulär. Linux speichert die Datumsangaben automatisch mit ab. Ich hatte den alles entscheidenden „ls“ Parameter vergessen :frowning:

ls -l --full-time

bringt Dir vielleicht das aha-Erlebnis.

Es ist nicht nötig, das Datum mit in den Dateinahmen zu bringen, da es bereits mit hoher Genauigkeit erfasst ist :smile:

Ansonsten ist Deine Lösung natürlich auch schön und richtig.

Gruss

Jens

Hallo Alex!
Ich bin der Meinung wenn du eine frage stellst dann soll es auch beantwortet werden und nicht nach irgenwelche Hintertüre gesucht werden!
Schau mal die man page von DATE an!
Hier kannst erkennen das man die Datumsformat beliebig darstellen kann!
zB. in deinem Fall:

date „+backup-%Y-%m-%d.log“

damit ist die Ausgabe von DATE folgendes:

backup-2000-12-21.log

Jetzt brauchst du nur mehr in eine Variable umleiten und schon kannst du damit weiterarbeiten zB.:

date=date "+backup-%Y-%m-%d.log"

Achtung die Hochkoma ist Shellabhängig wenn ` nicht funkt dann vielleicht mit ’ oder "

und jetzt kannst du mit $date weiterarbeiten
Ich hoffe dir geholfen zu haben!
mfg.
Kolos Walter

Hi zusammen,

ich bin gerade dabei, mein erstes Shellscript (bash) zu
schreiben, was dann ein Backup einiger Dateien macht.
Dieses Vorgang soll in einem LOG file protokolliert werden.

Das Problem:
Wie kann ich das aktuelle Datum in den Dateinamen übergeben.
Die Datei heißt dann jeden Tag anders, also z.B.

backup-2000-12-16.log

Wie das Datum aussieht, ist dabei egal, backup-20001216.log
oder sonstwie.

Gibt es eine Umgebungsvariable für das Datum?
„env“ hat mir nix dergleichen gezeigt.

Dank!

Moin,

Wie kann ich das aktuelle Datum in den Dateinamen übergeben.

Das Datum wird eh schon abgespeichert.

Danke. Wie und Wo ???

ls -l

Gibt es eine Umgebungsvariable für das Datum?
„env“ hat mir nix dergleichen gezeigt.

date

Das ist keine Umgebungsvariable

Ja und? Dann benutzt Du eben
myDate=date

danke für die ergiebige Antwort.

Keine Ursache.

DATUM=date +%Y-%m-%d

Scheint geholfen zu haben.

Thorsten

Die Lösung des Rätsels ist weder elegant noch spektakulär.
Linux speichert die Datumsangaben automatisch mit ab.

klar. macht sogar Win

Ich
hatte den alles entscheidenden „ls“ Parameter vergessen :frowning:

ls -l --full-time

bringt Dir vielleicht das aha-Erlebnis.

Es ist nicht nötig, das Datum mit in den Dateinahmen zu
bringen, da es bereits mit hoher Genauigkeit erfasst ist :smile:

Doch, es ist nötig, s.u.

Ansonsten ist Deine Lösung natürlich auch schön und richtig.

Gruss

Jens

Meine ist sogar um etliche Längen besser, weil sie das macht mach ich wollte.

Ich weiß natürlich, das die Dateien diverse Datums-Stempel kriegen. Mein Ziel war aber, das aktuelle Datum im _Dateinamen_ zu haben. Eure Lösungen machen das nicht nur schlecht, sondern garnicht.

Der Hintergrund ist der, dass ich für einen Bekannten einen Backup cron-job erstellt habe. Der kennt sich mit Datumsstempeln etc. nicht aus, aber Dateinamen kann er schon lesen. Er kennt auch kein ls … Und eh’ ich ihm das erklärt habe, geht es doch so eleganter und er muss mich nicht behelligen wenn er mal eine spezielle Logdatei von dd.mm.yy sucht.

Hätte der erste Helfer statt mit ein „date“ hinzuklatschen gleich myDate=´date´ geschrieben, wär alles längst vergessen.

Ich bin noch kein Profi und hatte das glaub ich auch erwähnt.

Trotzdem, besten Dank für full-time, das ist die Art wie ich es standardmäßig will. Werd mir gleich ein alias machen :wink:)

Schöne Feiertage Dir und allen Linuxern - AC

Danke! Top Antwort!

Danke, warum kamst Du nicht früher mal vorbei :wink:)

Die manpage habe ich inzwischen gewälzt. Konnte ja nicht ahnen, dass das Linux „date“ so eine mächtiges Teil ist (ich komme von DOS).

Das mit den ´ und ’ und " habe ich schon einige Male verflucht, mein Script ist für /bin/sh, weil cron damit besser zurechtkommt wegen der Pfad-Angaben, und ich nicht weiß, ob durch „export $PATH“ nicht schlimmeres passiert.

Wünsche Dir schöne Weihnachten, ciao.