GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa melihat hasil pekerjaan cron saya?

Periksa apakah program yang Anda jalankan dengan cron memiliki file log sendiri. Jika jika mereka tidak menulis hasilnya ke keluaran standar, Anda dapat mengarahkan ini ke file atau mengirimkannya kepada Anda. Di dalam pengalihan shell standar crontab berfungsi.

Misalnya. untuk mengalihkan keluaran kesalahan dari some_job.sh ke some_job.err dan membuang output standar (yaitu mengirimkannya ke /dev/null ) tambahkan pengalihan berikut ke crontab Anda

 33 3 * * * /path/to/some_job.sh 1> /dev/null 2> /other/path/to/some_job.err

atau mengirimkannya kepada Anda sebagai gantinya (jika mail tersedia)

 33 3 * * * /path/to/some_job.sh 1> /dev/null 2>&1 | mail -s "cron output" [email protected]

Sebagian besar daemon cron pada platform tempat saya bekerja secara otomatis mengirim email stdout/stderr dari pekerjaan cron pengguna ke pengguna yang crontabnya berasal dari pekerjaan itu. Saya lupa apa yang terjadi pada seluruh sistem (pekerjaan cron non-pengguna khusus dari /etc/crontab). Masalahnya adalah orang tidak selalu menyiapkan daemon mailer (yaitu, Mail Transfer Agent (MTA) seperti sendmail, qmail, atau postfix) di sebagian besar OS mirip Unix lagi. Jadi email keluaran tugas cron mati begitu saja di folder spool surat lokal di suatu tempat jika mereka mendapatkan itu jauh. Jadi satu jawaban mungkin hanya dengan menjalankan daemon mailer Anda, dan mungkin pastikan Anda memiliki file ~/.forward untuk meneruskan email lokal Anda ke akun email "asli" Anda.

Jika Anda ingin pekerjaan Anda menulis ke file log tertentu, Anda dapat menggunakan pengalihan keluaran standar seperti yang disarankan @honk, atau, seandainya pekerjaan cron Anda adalah skrip shell, Anda dapat membuat panggilan skrip logger(1) atau syslog(1) atau apa pun alat baris perintah lain yang disediakan OS Anda untuk mengirim pesan arbitrer ke syslog. Kemudian Anda dapat menggunakan metode bawaan OS Anda untuk mengonfigurasi jenis pesan mana yang dicatat di mana, mungkin dengan mengedit /etc/syslog.conf.

Sebagian besar pekerjaan cron saya menggunakan skrip bash yang saya tulis khusus untuk tujuan dimulai oleh cron karena alasan tertentu. Dalam hal itu, terutama ketika saya pertama kali menulis dan men-debugnya, saya suka menggunakan "set -vx" bash untuk membuat bentuk yang tidak diperluas dan diperluas dari setiap baris skrip shell ditulis ke stdout sebelum dieksekusi. Perhatikan bahwa skrip shell yang dimulai dari cron dianggap sebagai shell non-login, non-interaktif, jadi skrip startup shell standar Anda seperti .bashrc dan .profile tidak dijalankan. Jika Anda menggunakan bash dan ingin bash menjalankan skrip startup, Anda harus menentukan variabel lingkungan "BASH_ENV=/path/to/my/startup/script" di crontab Anda sebelum baris tempat Anda menentukan pekerjaan.


Tugas yang dijalankan cron bertanggung jawab atas logging mereka sendiri.


Linux
  1. Cara mengatur pekerjaan cron di cPanel

  2. Memecahkan Masalah Pekerjaan Cron

  3. Bagaimana cron menjadwalkan pekerjaan secara internal?

  1. Cara menghapus tugas cron

  2. Bagaimana cara mendapatkan daftar semua tugas cron terjadwal di mesin saya?

  3. Bagaimana saya bisa membunuh semua pekerjaan yang dihentikan?

  1. Bagaimana saya bisa membuat tugas cron baru secara terprogram?

  2. Bagaimana cara melihat pekerjaan cron yang sedang berjalan?

  3. Bagaimana cara melihat lebih banyak riwayat saya di Layar di Linux?