Apakah ada batas karakter perintah dalam crontab bisa?
Saya memiliki crontab dengan perintah 178 karakter dan tampaknya terpotong pada 164 ketika dieksekusi. Saya dapat memberitahu nomor ini dari email yang saya terima dan dari vi warna yang berubah dari titik itu.
Jadi, apakah ini batasan "resmi"? Saya tidak dapat menemukan dokumentasi tentang ini.
Jawaban:
Wow, saya menemukan apa masalah saya dan tidak ada hubungannya dengan panjang garis.
Ternyata perintah saya memiliki% (tanda persen) di dalamnya, yang memiliki arti khusus di crontab. Ini digunakan untuk memasukkan teks ke STDIN (lihat Mengapa crontab saya tidak berfungsi, dan bagaimana saya bisa memecahkan masalah itu? ).
Jadi saya harus menghindarinya. Perintah saya yaitu:
menjadi
sumber
%
menyebabkan kekhawatiran beberapa jam!Secara eksperimental , ada pemotongan 999 karakter per baris pada semua mesin Ubuntu saya, meskipun saya belum menemukan dokumentasi penjelasan terkait.
Saya telah menguji di Ubuntu 10.04, 12.04, dan 14.04, dan jumlah karakter 999 dimulai pada karakter non-spasi pertama melewati jadwal (dalam contoh saya jadwalnya adalah
* * * * *
, yang sama dengan 1 kali setiap menit).Mengamati:
Pertama kita menghitung karakter perintah yang akan kita tambahkan ke crontab kita - tanpa jadwal :
Tambahkan perintah itu ke crontab kami, untuk menjalankan setiap menit: (PERINGATAN ini menimpa setiap entri crontab yang ada untuk pengguna yang relevan)
Tunggu satu menit, periksa apakah
/tmp/test.log
file dibuat berisi semua "a" Anda:Mulai segar, hapus crontab dan log file:
Tambahkan perintah yang sama seperti sebelumnya, hanya 1 karakter lebih panjang, (dalam kasus saya,
B
):/tmp/test.lo
dibuat dengan "a" Anda. Ini karena karakter ke-1000 terpotong.Untuk mengonfirmasi, hapus yang ditambahkan
B
dan alih-alih tambahkan1
ke nama file, seperti:/tmp/test1.lo
akan dibuat dengan "a" Anda./bin/echo
ke/usr/bin/echo
dan temukan Anda harus menghapus 4 karakter tambahan dari perintah Anda.sumber
cron
pada Ubuntu 14,04 saya diam-diam memotong perintah ke 999 karakter. Ini sangat gila, butuh beberapa saat untuk mencernanya. Dan ini tampaknya menjadi satu-satunya tempat di Internet untuk mendokumentasikannya, dengan 1 suara positif.... && stop-power-plant; start-power-plant
dan cron hanya diam-diam memotong; start-power-plant
/bin/sh: 1: Syntax error: Unterminated quoted string
, tetapi tidak ada yang menjaminnya.