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.