Saya memiliki program yang mencetak beberapa output yang ingin saya munculkan di terminal saya sekali setiap jam selama hari kerja.
$ crontab -l
0 07-17 * * * /home/dat/scripts/cron.out
syslog melaporkan yang berikut ini:
(dat) CMD (/home/dat/scripts/cron.exe)
Jun 18 12:02:01 picard CRON[10848]: (CRON) info (No MTA installed, discarding output)
Apa yang saya lewatkan?
Jawaban:
Cara kotor bisa dengan mengarahkan output program Anda ke file pts dari terminal yang sudah ada .
Untuk mengetahui file Poin cukup ketik
tty
perintahmaka crontab Anda adalah:
Cara lain bisa dengan meluncurkan program sebagai argumen terminal:
di mana
display
tampilan X di mana Anda ingin menunjukkan terminal,-H
adalah untuk memberitahu terminal untuk tetap terbuka setelah perintah tersebut dihentikan. Ini akan membuat setiap kali terminal baru.crontab:
jika tampilan tidak ada, Anda akan memiliki kesalahan yang dicatat oleh syslog.
sumber
Cron mengirimi Anda email hasil skrip Anda. Sayangnya, Ubuntu tidak mengatur mail lokal secara default , itulah sebabnya Cron memberi tahu Anda dalam log “Tidak ada MTA yang diinstal, membuang output”.
Menyiapkan surat lokal bisa menjadi salah satu cara untuk menyelesaikan masalah Anda. Alih-alih output di terminal, Anda akan mendapatkan pemberitahuan email.
Jika Anda ingin pekerjaan cron Anda keluaran ke terminal, Anda harus mengarahkan outputnya ke terminal. Bagian pengalihan mudah -
tetapi masalahnya adalah mencari tahu terminal mana yang akan dialihkan. Tidak ada jawaban universal untuk itu, tergantung bagaimana Anda ingin memilih terminal di antara terminal yang Anda masuki.
Untuk penggunaan umum, pemberitahuan GUI akan lebih sesuai. Anda bisa menggunakannya
notify-send
. Anda perlu mengaturDISPLAY
variabel lingkungan .sumber
Cron mengirimkan output ke mailer. Jika Anda ingin melihat output di terminal maka Anda dapat masuk ke file dan menggunakan tail -f untuk melihat output di terminal yang ingin Anda lihat output
Log ke file
0 07-17 * * * /home/dat/scripts/cron.out > /path/to/log.txt 2> /path/to/error.txt
Cara alternatif untuk masuk:
echo output > log.txt
, atau Anda dapat menggunakan skrip pembungkus yang dijelaskan di bawah ini.Contoh program dan skrip wrapper:
Contoh jalankan 1:
Contoh menjalankan 2:
Lihat output di terminal:
Sekarang saat Anda logout baik standard out maupun standard error ke sebuah file, di terminal apa pun, Anda dapat menjalankan
tail -f
satu atau kedua file sepertitail -f log.txt
atautail -f log.txt error.txt
agar tail akan menonton atau lebih tepatnya mengikuti file untuk perubahan. tail man-pageFile log yang ditambahkan setelahnya:
Jika log.txt atau error.txt ditambahkan kemudian dari program Anda atau dari terminal lain seperti
$ echo "more output" >> log.txt
, output terlihat pada terminal yang berjalan$ tail -f log.txt error.txt
Selanjutnya,
$ echo code red >> error.txt
menghasilkan:sumber