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!


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.


2
Terima kasih! Saya akan mengedit pertanyaan sehingga cocok dengan masalah sebenarnya.
lpanebr
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.