Perintah dengan simbol persen tidak berjalan di crontab

11

Crontab berikut tidak berfungsi:

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

Saya juga mencoba memulainya dengan:

SHELL=/bin/bash

Pembaruan: Saya pikir karakter backtick `adalah penjahat, tetapi sebagai jawaban di bawah ini menjelaskan persentase% adalah biang keladinya!

lpanebr
sumber
Jalur tes Anda hanya akan berjalan sekali setiap jam. Itu mungkin bukan yang Anda maksudkan untuk pengujian.
user535733
bukan yang pertama menit? # mh dom mon dow command
lpanebr
Anda benar .. Saya mengubah ke * / 1 untuk membuatnya berjalan setiap menit. Cron berjalan dengan baik. Ada sesuatu dengan perintahnya. Tampaknya menjadi/bin/date +%Y-%m-%d
lpanebr

Jawaban:

13

Di /bin/date +%Y-%m-%d, Anda harus melarikan diri masing %- masing \sesuai dengan halaman manual ini :

Kolom "keenam" (sisa baris) menentukan perintah yang akan dijalankan. Seluruh bagian perintah dari baris, hingga baris baru atau karakter%, akan dieksekusi oleh / bin / sh atau oleh shell yang ditentukan dalam variabel SHELL dari cronfile. Tanda-persen (%) dalam perintah, kecuali lolos dengan backslash (), akan diubah menjadi karakter baris baru, dan semua data setelah% pertama akan dikirim ke perintah sebagai input standar.

DK Bose
sumber
2
Terima kasih! Saya akan mengedit pertanyaan sehingga cocok dengan masalah sebenarnya.
lpanebr