it-swarm-vi.tech

Làm thế nào để sửa đổi một chủ đề email Cronjob

Tôi đang điều hành một nửa tá công việc định kỳ khác nhau từ máy chủ lưu trữ của mình tại Hostmonster.com. Khi một cronjob đã được thực thi, tôi nhận được một email có đầu ra của tập lệnh.

Email có định dạng:

Từ: Cron Daemon [.__.] Chủ đề: Cron/ramdisk/bin/php5 -c /home5/username/schediated/optizes_mysql.bash[.__.]

Vấn đề với điều này là chủ đề của email khiến cho việc đọc email liên quan đến cronjob trở nên rất khó khăn.

Có cách nào để sửa đổi chủ đề của email cronjob để dễ đọc hơn không?

Ví dụ:

[.__.] Từ: Cron Daemon [.__.] Chủ đề: Tối ưu hóa cơ sở dữ liệu MySQL [.__.]
51
justinl

Trên các hệ thống của tôi (hầu hết Debian), tất cả đầu ra, từ tập lệnh/chương trình được gọi là mục nhập crontab, được gửi qua email đến [email protected] người khởi xướng cron. Những email này có một chủ đề như của bạn.

Nếu bạn muốn nhận email, hãy viết một tập lệnh không có đầu ra. Nhưng thay vào đó, đặt tất cả đầu ra trong một tệp văn bản.

Và với

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

bạn nhận được nó theo cách bạn muốn.

11
Michèle

Hoặc sử dụng lệnh sh noop (:)

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

Chủ đề vẫn trông có vẻ bùn, nhưng ít nhất nó có tính mô tả và không yêu cầu các tập lệnh ngoại lai.

56
Anthony

Đưa đầu ra công việc định kỳ của bạn vào thư trực tiếp, và sau đó bạn có thể điền vào dòng chủ đề. các 2>&1 cú pháp gửi bất kỳ đầu ra lỗi nào sẽ biến mất.

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

Đảm nhận trách nhiệm của crond trong việc gửi đầu ra lệnh (hoặc không nếu không có) bằng cách chuyển đầu ra và stderr thành 'mailx -E'. Ví dụ:

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

Tùy chọn '-E' của Mailx rất hay bởi vì, giống như crond, nó sẽ không gửi thư nếu không có bất kỳ đầu ra nào để gửi.

13
Alexis Huxley

Một giải pháp khác là viết một tập lệnh Shell với dòng chủ đề mà bạn muốn gọi đúng lệnh. Trong ví dụ của bạn, đây sẽ là:

#Optimize_MySQL_Database.sh

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

Bạn có thể bao gồm thư mục bin của bạn trong đường dẫn bằng cách đặt nó trong tệp crontab.

2
kbk7173

HÃY THỬ NÀY - Trong dòng lệnh thực hiện đoạn mã sau ---

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" [email protected]**
  • Đây chỉ là một giới thiệu để hướng dẫn bạn
0
sudhu