Sesuatu dalam skrip memanggil tput
biner. tput
mencoba memeriksa $TERM
variabel untuk menentukan terminal arus sehingga dapat menghasilkan urutan kontrol yang benar. Tidak ada terminal saat cron berjalan sehingga Anda mendapatkan kesalahan itu dari tput
.
Anda dapat menetapkan TERM
secara manual nilai ke tugas cron (kemungkinan dumb
atau sesuatu yang mirip dengan itu) atau (dan ini mungkin solusi yang lebih baik) Anda dapat mengetahui apa yang memanggil tput
dan hapus panggilan itu.
Daemon cron dijalankan oleh pengguna 'root' di shell-nya sendiri. Secara default, cron akan menambahkan surat sistem yang dikirim ke pengguna yang menjalankan skrip (itulah mengapa Anda melihat pengirim sebagai 'root' di surat sistem). 'Pengguna' adalah pengguna yang Anda masuki saat mengatur crontab. Surat tersebut akan berisi konsol dan pesan kesalahan. Di Ubuntu, file email dapat dilihat di /var/mail/<username>
.
Jika tidak ada $TERM
variabel diatur, cron akan mengeluarkan tput: No value for $TERM and no -T specified
kesalahan dalam file email. Untuk menghentikan kesalahan ini, setel $TERM
variabel menggunakan TERM=dumb
(atau terminal lain yang tersedia di sistem Anda, seperti xterm
) di crontab. toe
perintah akan menampilkan definisi terminfo pada sistem saat ini. Jika Anda tidak memiliki perintah itu, Anda dapat melihat data mentahnya di /usr/share/terminfo
pada sebagian besar sistem Linux.
Meskipun Anda telah menghentikan kesalahan, Anda mungkin masih mendapatkan email sistem tambahan dengan pesan konsol. File ini akan terisi seperti log dari waktu ke waktu, jadi Anda mungkin ingin menghentikan pesan ini. Untuk menghentikan email sistem cron, setel MAILTO
variabel menggunakan MAILTO=""
Jadi crontab Anda mungkin terlihat seperti:
MAILTO=""
TERM=xterm
* * * * * sh /path/to/myscript.sh
Anda dapat melihat crontab (untuk pengguna yang Anda masuki sebagai) dengan 'crontab -l'.