Ich versuche, mithilfe des folgenden Codes ein Programm zu erstellen, das an jedem Werktag jede Minute crontab
eine neue Datei erstellt :.tar
*/1 * * * 1,2,3,4,5 tar -cf /home/user/Archiv/$(date +"%Y%m%d%H%M").tar /home/user/Textverarbeitung/ -P
Das funktioniert nicht. Warum?
Antwort1
cron
wird als Zeilenumbruch behandelt %
. Sie müssen es mit Escapezeichen versehen, d. h. verwenden, um \%
den Literalwert %
wie in zu erhalten date
.
Also brauchst du:
date +"\%Y\%m\%d\%H\%M"
Oder Sie können ein Skript verwenden, alle Befehle im Skript nutzen und das Skript von aufrufen crontab
.
Aus man 5 crontab
:
Prozentzeichen (%) im Befehl werden, sofern sie nicht mit einem Backslash (\) maskiert sind, in Zeilenumbruchzeichen umgewandelt und alle Daten nach dem ersten % werden als Standardeingabe an den Befehl gesendet. Es gibt keine Möglichkeit, eine einzelne Befehlszeile auf mehrere Zeilen aufzuteilen, wie das abschließende "\" der Shell.
Antwort2
Verwenden Sie \%
anstelle von %
– Cron verwendet es %
als neue Zeile.