it-swarm.asia

Cronjob E-posta Konusunu Değiştirme

Hostmonster.com'daki hostingimden yarım düzine farklı cron işi yapıyorum. Bir cronjob yürütüldüğünde, komut dosyasının çıktısını içeren bir e-posta alırım.

E-posta şu biçimde gelir:

Gönderen: Cron Daemon 
 Konu: Cron/ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

Buradaki sorun, e-postanın konusunun, e-postanın hangi cronjob ile ilgili olduğunu okumayı zorlaştırmasıdır.

Bir cronjob e-postasının konusunu daha kolay okunacak şekilde değiştirmenin bir yolu var mı?

Örneğin:

 Kimden: Cron Daemon 
 Konu: MySQL Veritabanını Optimize Edin 
51
justinl

Sistemlerimde (çoğu Debian) crontab girişi olarak adlandırılan bir komut dosyasından/programdan tüm çıktılar e-posta ile [email protected] kronu başlatan. Bu e-postaların sizinki gibi bir konu var.

Bir e-posta almak istiyorsanız, tek başına çıktısı olmayan bir komut dosyası yazın. Ancak bunun yerine tüm çıktıları bir metin dosyasına koyun.

Ve birlikte

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

istediğiniz şekilde alırsınız.

11
Michèle

Veya sh noop komutunu kullanın (:)

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

Konu hala kludgey görünüyor, ama en azından açıklayıcı ve yabancı komut dosyaları gerektirmiyor.

56
Anthony

Cron iş çıktısını doğrudan postaya yönlendirin ve ardından konu satırını doldurabilirsiniz. 2>&1 sözdizimi, aksi takdirde kaybolacak herhangi bir hata çıktısı gönderir.

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

Çıktı ve stderr komutunu 'mailx -E' komutuna göndererek komut çıktısını gönderme (veya yoksa değil) için crond'un sorumluluğunu üstlenin. Örneğin:

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

Mailx'in '-E' seçeneği Nice, çünkü crond'un kendisi gibi, gönderilecek herhangi bir çıktı yoksa posta göndermeyecektir.

13
Alexis Huxley

Başka bir çözüm, doğru komutu çağıran istediğiniz konu satırı ile bir Shell betiği yazmaktır. Örneğinizde bu şöyle olur:

#Optimize_MySQL_Database.sh

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

Bin dizininizi crontab dosyasında ayarlayarak yola ekleyebilirsiniz.

2
kbk7173

DENEYİN - Komut satırında aşağıdaki kodu uygulayın ---

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" [email protected]**
  • Bu sadece size rehberlik edecek bir referans
0
sudhu