pengembangan-web-mp.com

Cara Memodifikasi Subjek Email Cronjob

Saya menjalankan setengah lusin pekerjaan cron berbeda dari hosting saya di Hostmonster.com. Ketika cronjob telah dieksekusi saya menerima email dengan output dari skrip.

Email datang dalam format:

Dari: Cron Daemon 
 Subjek: Cron/ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

Masalah dengan ini adalah bahwa subjek dari email membuatnya sangat sulit untuk membaca cronjob email mana yang berkaitan.

Apakah ada cara untuk mengubah subjek email cronjob sehingga lebih mudah dibaca?

Sebagai contoh:

 Dari: Cron Daemon 
 Subjek: Optimalkan Database MySQL 
51
justinl

Pada sistem saya (kebanyakan Debian) semua output, dari skrip/program yang disebut sebagai entri crontab, dikirim melalui email ke [email protected] siapa yang memulai cron. Email-email ini memiliki subjek seperti milik Anda.

Jika Anda ingin menerima email, tulis skrip yang tidak memiliki output sendiri. Tetapi alih-alih menempatkan semua output dalam file teks.

Dan dengan

mail -s 'your subject' [email protected] < textfile

anda menerimanya seperti yang Anda inginkan.

11
Michèle

Atau gunakan perintah sh noop (:)

0 9-17 * * 1-5    : Queue Summary; PATH=/usr/sbin qshape

Subjek masih terlihat murung, tapi setidaknya itu deskriptif dan tidak memerlukan skrip asing.

56
Anthony

Pipa output pekerjaan cron Anda ke mail secara langsung, dan kemudian Anda dapat mengisi baris subjek. 2>&1 sintaks mengirim output kesalahan yang seharusnya hilang.

mycmd 2>&1 | mail -s "mycmd output" myname
22
Mark Harrison

Ambil alih tanggung jawab crond untuk mengirim output perintah (atau tidak jika tidak ada) dengan mem-piping output dan stderr ke 'mailx -E'. Sebagai contoh:

0 * * * * your-command 2>&1 | mailx -E -s "Descriptive Subject" $LOGNAME

Opsi '-E' dari Mailx bagus karena, seperti halnya crond sendiri, ia tidak akan mengirim email jika tidak ada output untuk dikirim.

13
Alexis Huxley

Solusi lain adalah dengan menulis skrip Shell dengan baris subjek yang Anda inginkan yang memanggil perintah yang tepat. Dalam contoh Anda, ini akan menjadi:

#Optimize_MySQL_Database.sh

/ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

Anda dapat memasukkan direktori bin Anda di path dengan mengaturnya di file crontab.

2
kbk7173

COBALAH INI - Di baris perintah mengimplementasikan kode berikut ---

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" [email protected]**
  • Ini hanya referensi untuk membimbing Anda
0
sudhu