Leerzeile in Variable des bash-Befehls (crontab)

Hallo,
folgendes funktioniert:
tar --force-local -cvf backup.of.music$(date +%F_%T).tar.gz /home/thackler/Musik/

allerdings hätte ich gern statt des Unterstrichs "" ein Leerzeichen bei dem Dateinamen, der mit blabla"date +%F%T).blabla einen Zeitstempel bekommen… könnt ihr mir sagen wie ich was setzen /escapen muss damit es in meiner crontab läuft ?

vielen Dank im voraus.
Lars

Hallo,

eigentlich musst du den Unterstrich nur durch Backslash+Leerzeichen ersetzen:

$ date +%F\ %T
2022-02-26 13:09:55

Gruß,
Steve

mein fehler… so sieht es in der crontab derzeit aus :
*/2 * * * * tar --force-local -cvf backup.of.music$(date +%F_%T).tar.gz /home/thackler/Musik/

das geht… aber das hier leider nicht:
*/2 * * * * tar --force-local -cvf backup.of.music$(date +%F\ %T).tar.gz /home/thackler/Musik/

vielen Dank schonmal für die Hilfe

Hallo,
ich zitiere mal die man page

A "%" character in the command, unless escaped with a backslash (\), will be changed into newline characters, and all data after the
first % will be sent to the command as standard input.

Richtig wäre also:

*/2 * * * * tar --force-local -cvf backup.of.music"$(date +\%F \%T)".tar.gz /home/thackler/Musik/

Hi,

genauso in die crontab des root eingetragen und er erstellt nur eine „backup.of.music.tar.gz“ Datei… ohne „Datum Uhrzeit“.

Ja sorry, ich seh’s auch, nochmal:

*/2 * * * * tar --force-local -cvf backup.of.music"$(date +\%F\ \%T)".tar.gz /home/thackler/Musik/

Also "" außen rum, damit das Ergebnis von der bash mit Leerzeichen nicht nochmal ausgewertet wird. \%, damit cron daraus kein newline macht. Und \ (Backslash Space), damit date die Argumente als einen String sieht.

Nur zur Sicherheit: ist sichergestellt, dass cron die Kommandos mit bash ausführt?

Vielen Dank ,

es hat nun funktioniert…

Besten Dank auch hier… war wohl bei mir Standard… :slight_smile: aber ja… bei manchen Distros wohl nicht…

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Nachrichten mehr erlaubt.