sviluppo-web-qa.it

Come modificare un oggetto e-mail Cronjob

Sto eseguendo una mezza dozzina di lavori cron diversi dal mio hosting su Hostmonster.com. Quando è stato eseguito un cronjob, ricevo un'email con l'output dello script.

L'email è disponibile nel formato di:

Da: Cron Daemon 
 Oggetto: Cron/ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

Il problema è che l'oggetto dell'email rende molto difficile leggere a quale cronjob appartiene l'e-mail.

C'è un modo per modificare l'oggetto di un'e-mail cronjob in modo che sia più facile da leggere?

Per esempio:

 Da: Cron Daemon 
 Oggetto: Ottimizza il database MySQL 
51
justinl

Sui miei sistemi (la maggior parte di Debian) tutto l'output, da uno script/programma chiamato come voce crontab, viene inviato via e-mail a [email protected] che ha avviato il cron. Queste e-mail hanno un argomento come il tuo.

Se desideri ricevere un'e-mail, scrivi uno script che non ha un output da solo. Ma invece metti tutto l'output in un file di testo.

E con

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

lo ricevi nel modo che preferisci.

11
Michèle

Oppure usa il comando sh noop (:)

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

Il soggetto sembra ancora kludgey, ma almeno è descrittivo e non richiede script estranei.

56
Anthony

Invia l'output del tuo lavoro cron direttamente alla posta, quindi puoi compilare la riga dell'oggetto. il 2>&1 la sintassi invia qualsiasi output di errore che altrimenti scomparirebbe.

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

Assumi la responsabilità di crond per l'invio dell'output del comando (o meno se non ce n'è) inviando l'output e stderr a "mailx -E". Per esempio:

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

L'opzione '-E' di Mailx è piacevole perché, proprio come lo stesso crond, non invierà una mail se non c'è alcun output da inviare.

13
Alexis Huxley

Un'altra soluzione è scrivere uno script Shell con l'oggetto desiderato che chiama il comando giusto. Nel tuo esempio, questo sarebbe:

#Optimize_MySQL_Database.sh

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

È possibile includere la directory bin nel percorso impostandola nel file crontab.

2
kbk7173

PROVA QUESTO - Nella riga di comando implementa il seguente codice ---

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" [email protected]**
  • Questo è solo un riferimento per guidarti
0
sudhu