Comando con simboli di percentuale non in esecuzione in crontab


11

Il seguente crontab non funziona:

# TEST LINE DOES DOT RUN
*/1 * * * * /bin/echo 'test '`/bin/date +%Y-%m-%d` >> /tmp/test

Ho anche provato ad avviarlo con:

SHELL=/bin/bash

Aggiornamento: ho pensato che i personaggi di backtick `fossero i cattivi, ma come la risposta sotto chiarisce che la percentuale% era il colpevole!


La linea di test verrà eseguita solo una volta ogni ora. Potrebbe non essere quello che intendevi per i test.
user535733

non è il primo al minuto? # mh dom mon dow command
lpanebr

Hai ragione .. Sono passato a * / 1 per farlo funzionare ogni minuto. Il cron funziona bene. C'è qualcosa con i comandi. Sembra essere il/bin/date +%Y-%m-%d
lpanebr

Risposte:


13

In /bin/date +%Y-%m-%d, è necessario fuggire ciascuno %con \secondo questa pagina man :

Il "sesto" campo (il resto della riga) specifica il comando da eseguire. L'intera porzione di comando della riga, fino a una nuova riga o carattere%, verrà eseguita da / bin / sh o dalla shell specificata nella variabile SHELL del cronfile. I segni di percentuale (%) nel comando, a meno che non vengano salvati con la barra rovesciata (), verranno modificati in caratteri di nuova riga e tutti i dati dopo il primo% verranno inviati al comando come input standard.


2
Grazie! Modificherò la domanda in modo che si adatti al vero problema.
lpanebr,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.