GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie führe ich "date" innerhalb eines Cron-Tab-Jobs aus?

Ich möchte eine Protokolldatei für ein Cron-Skript erstellen, das die aktuelle Stunde im Namen der Protokolldatei enthält. Dies ist der Befehl, den ich versucht habe zu verwenden:

0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log

Leider bekomme ich diese Meldung wenn das läuft:

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file

Ich habe versucht, das date zu maskieren Teil auf verschiedene Weise, aber ohne viel Glück. Ist es möglich, dies inline in einer crontab-Datei zu bewirken, oder muss ich dafür ein Shell-Skript erstellen?

Akzeptierte Antwort:

Kurze Antwort:

Entfliehen Sie dem % als % :

0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log

Lange Antwort:

Die Fehlermeldung deutet darauf hin, dass die Shell, die Ihren Befehl ausführt, das zweite Backtick-Zeichen nicht sieht:

/bin/sh: -c: line 0: unexpected EOF while looking for matching '`'

Dies wird auch durch die zweite Fehlermeldung bestätigt, die Sie erhalten haben, als Sie eine der anderen Antworten ausprobiert haben:

/bin/sh: -c: line 0: unexpected EOF while looking for matching ')'

Die crontab-Manpage bestätigt, dass der Befehl nur bis zum ersten nicht maskierten % gelesen wird Zeichen:

Das „sechste“ Feld (der Rest der Zeile) gibt den auszuführenden Befehl
an. Der gesamte Befehlsteil der Zeile bis zu einem Zeilenumbruch oder % Zeichen, wird von /bin/sh ausgeführt oder durch die in
SHELL angegebene Shell Variable der Cronfile. Prozentzeichen (% ) im Befehl, sofern nicht mit Backslash maskiert ( ), wird geändert in Zeilenumbruch , und alle Daten nach dem ersten % wird als Standardeingabe an
den Befehl gesendet.


Linux
  1. So legen Sie einen Cron-Job in TrueNAS fest

  2. Wie führe ich einen Befehl in einem laufenden Systemd-Container aus?

  3. So richten Sie einen Cron-Job ein

  4. Wie kann man Cron anweisen, jede zweite Woche einen Job auszuführen?

  5. Wie kann ich programmgesteuert einen neuen Cron-Job erstellen?

So richten Sie einen Cron-Job in cPanel ein

So richten Sie einen Cron-Job in cPanel ein

Einrichten eines Cron-Jobs in cPanel

Wie richte ich einen Cron-Job bei Hostinger ein?

So verwenden Sie den Jobs-Befehl unter Linux

Wie führe ich einen Befehl in einem Shell-Skript aus?