Archiv verlassen und diese Seite im Standarddesign anzeigen : akt. Datum in Dateinamen schreiben
Hallo,
ich möchte in einem Shellscript die Ausgabe eines Kommandos per > in eine Textdatei umlenken, die dabei das aktuelle Datum im Dateinamen tragen soll.
BlaFasel > /files/log/`date +%Y%m%d-%H:%M`_mirror.log.txt;
Leider klappt das nicht so ganz und die Datei bekommt nur ausgesprochen merkwürdige Namen... ;-) Hat jemand eine Idee, was ich da falsch mache?
Vielen Dank für eure Hilfe,
Grüße,
Daniel
>/files/logs/$(date +%Y%m%d_%H%M)_mirror.log.txt
sollte gehen...
Ach ja: "ein ausgesprochen merkwürdiger Name" ist eine sehr exakte und aussagekräftige Fehlermeldung...
Hallo,
danke für Deine Antwort, klappt leider trotzdem nicht. Fehlermeldung gibts leider keine, aber es kommen so merkwürdige Dateinamen wie diese dabei raus:
21CFGW~T.TXT
2LHDGU~M.TXT
24YSR9~8.TXT
2ORLO9~Q.TXT
Der komplette Teil des Scripts sieht übrigens so aus
rsync -rvz --delete \
/nas/bac/ /files/bac/ > /files/log/$(date +%Y%m%d_%H:%M)_mirror_bac.log.txt;
Hab echt keinen Schimmer, was da nicht passen könnte...!?
Leider klappt das nicht so ganz und die Datei bekommt nur ausgesprochen merkwürdige Namen... ;-) Hat jemand eine Idee, was ich da falsch mache?
Es würde vielleicht helfen, wenn du den Dateinamen mal hier postest; vielleicht wird man ja dann draus schlau.
$().....
sollte gehen...
Ist das gleiche wie ` ` :)
Bei mir geht das Ganze übrigends problemlos:
[ je@cthulhu] ~/delete (3,0G free) % dir .. > `date +%Y%m%d-%H:%M`_mirror.log.txt;
[ je@cthulhu] ~/delete (3,0G free) % ls
20061023-13:55_mirror.log.txt
darf man frech mal nach dem Dateisystem fragen, auf dem Du die Dateien erstellen willst?
@MiGo: manchmal machen die Backtickets Probleme, wenn sie im Kontext drin stehen - deswegen der Tip von mir...
21CFGW~T.TXT
Wie ist das Laufwerk, auf das geschrieben wird (also /files/bac) gemounted? Das sieht nach einer Begrenzung der Dateinamenlänge aus (-t fat16 oder so).
Edit: Mist, schon wieder zu lahm. Ist wohl nicht mein Tag heute :/
Ich benutze dazu immer date --iso-8601=date.
/nas/bac ist ein per SMB Freigabe gemountetes Laufwerk auf einer NAS, Dateisystem FAT32. /files/bac hingegen ist direkt Teil des Servers auf den die Daten kopiert werden - also ReiserFS oder sowas, glaube ich. Dateinamenbegrenzung kann ich mir irgendwie nicht so recht vorstellen, das sind ja nicht mal 16 Zeichen ;-)
Dateinamenbegrenzung kann ich mir irgendwie nicht so recht vorstellen, das sind ja nicht mal 16 Zeichen ;-)
2ORLO9~Q.TXT entspricht allerdings exakt einem auf 8+3 gekürztem Dateinamen. Genaus so, wie's unter Fat16 üblich ist. Daher die Frage.
Verdammt - Du hast recht. Wenn ich von date nur 8 Zeichen ausgeben lasse, dann funktioniert es ??
Aber das ergibt doch keinen Sinn: Das Dateisystem, auf dem die Logdatei gespeichert wird, ist definitv kein FAT16 sondern ein ganz normales ReiserFS. Wenn ich den Dateinamen nicht durch die date-Funktion erzeugen lassen, sondern hartcodiert in den Befehl schreibe, kann ich soviele Zeichen verwenden wie ich will, ohne das dabei irgendwas zerissen würde - das passiert nur bei der Ausgabe von date...
Ich versteh das nicht wirklich....
die date optionen sollte man quotieren:
BlaFasel > /files/log/`date '+%Y%m%d-%H:%M'`_mirror.log.txt
aaaaaaaaaahhhhhhhhhhhh... DAS war's: Die Optionen müssen quotiert werden - jetzt geht das auch wunderbar!
Vielen Dank für den Tipp ;-)
Auch wieder was gelernt! Danke! :D
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.