ক্রোনজব ইমেল সাবজেক্ট কীভাবে পরিবর্তন করবেন


49

আমি হোস্টমনস্টার ডট কম এ আমার হোস্টিং থেকে আধা ডজন বিভিন্ন ক্রোন জব চালাচ্ছি। ক্রোনজব এক্সিকিউট হয়ে গেলে আমি স্ক্রিপ্টের আউটপুট সহ একটি ইমেল পাই।

ইমেলটি এর ফর্ম্যাটে আসে:

থেকে: ক্রোন ডেমন
বিষয়: ক্রোন / রামডিস্ক / বিন / পিএইচপি 5 -সি / হোম 5 / ব্যবহারকারীর নাম

এটির সাথে সমস্যাটি হ'ল ইমেলের বিষয়টি ইমেলটি কোন ক্রোনজব সম্পর্কিত তা পড়তে খুব কষ্ট করে।

ক্রোনজবুক ইমেলের বিষয়টিকে সংশোধন করার কোনও উপায় আছে যাতে এটি পড়া সহজ হয়?

উদাহরণ স্বরূপ:

থেকে: ক্রোন ডেমন
বিষয়: মাইএসকিউএল ডেটাবেস অপ্টিমাইজ করুন

উত্তর:


11

আমার সিস্টেমে (বেশিরভাগ দেবিয়ান) ক্রোনটব-এন্ট্রি নামে পরিচিত একটি স্ক্রিপ্ট / প্রোগ্রাম থেকে সমস্ত আউটপুট ক্রোনটির account@localhostসূচনা করে ইমেলের মাধ্যমে প্রেরণ করা হয় । এই ইমেলগুলি আপনার মত একটি বিষয় আছে।

আপনি যদি কোনও ইমেল পেতে চান, একটি স্ক্রিপ্ট লিখুন যার নিজস্ব কোনও আউটপুট নেই। তবে পরিবর্তে সমস্ত আউটপুট একটি পাঠ্যফাইলে রাখুন।

এবং সাথে

mail -s 'your subject' adress@where < textfile

আপনি এটি আপনার পছন্দ মত গ্রহণ।


ধন্যবাদ মিশেল। আমি হোস্টমনস্টারের স্বয়ংক্রিয় ইমেল সিস্টেমটি ব্যবহার করার আশা করছিলাম তবে মনে হচ্ছে এটিই আমার সাথে সমাধান হবে। আমার হোস্টিং দ্বারা নিয়ন্ত্রিত স্বয়ংক্রিয় ক্রোন ইমেলগুলি পাওয়ার পরিবর্তে আমি কেবল নিজের ইমেলগুলি প্রেরণ করব।
justinl

53

অথবা sh noop কমান্ডটি ব্যবহার করুন (:)

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

বিষয়টি এখনও কলডজি দেখায়, তবে কমপক্ষে এটি বর্ণনামূলক এবং কোনও বহির্মুখী স্ক্রিপ্টের প্রয়োজন নেই।


4
এখন যে হ্যাক! (আমি এটি পছন্দ করি))
ম্যাক্সি-বি

8
দ্রষ্টব্য যে কোলনের পরে স্থানটি গুরুত্বপূর্ণ।
প্যাট্রিক

1
শিরোনামটি কি "সারি সারসংক্ষেপ" হতে চলেছে? এবং এই ক্ষেত্রে কমান্ড "qshape" হয়?
প্রতীক খাদলোয়া

দেখে মনে হচ্ছে qshape একটি পোস্টফিক্স কমান্ড। আমার ইউনিক্স মেশিনটি "মেল" কমান্ড ব্যবহার করে। তবে কি এখানে কিশাপ কমান্ড প্রাসঙ্গিক?
প্রতীক খাদলোয়া

1
এফওয়াইআই, ইমেলের বিষয়টি হবেQueue Summary; PATH=/usr/sbin qshape
আকোম

20

আপনার ক্রোন জব আউটপুটটি সরাসরি মেল করতে পাইপ করুন এবং তারপরে আপনি বিষয়টির লাইনটি পূরণ করতে পারবেন। 2>&1সিনট্যাক্স কোন ভুল আউটপুট যা অন্যথায় অদৃশ্য হয়ে যাবে পাঠায়।

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

2
আমি এটি করছি, তবে স্ক্রিপ্ট ক্রোন কলগুলির অভ্যন্তরীণ কারণ আমি চাই যে বিষয়টি স্ক্রিপ্টটি চালিত হওয়ার সাফল্য বা ব্যর্থতার প্রতিফলিত করে।
টম ব্যারন

13

আউটপুট এবং স্টাডারকে 'মেলেক্স-ই' এ পাইপিং করে কমান্ড আউটপুট (বা যদি নেই তবে না) প্রেরণের জন্য ক্রন্ডের দায়িত্ব গ্রহণ করুন। উদাহরণ স্বরূপ:

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

মেলেক্সের '-E' বিকল্পটি দুর্দান্ত কারণ ঠিক যেমন ক্রন্ডের মতো, কোনও আউটপুট প্রেরণ না করলে এটি কোনও মেল পাঠায় না।


1
এখানে O LOGNAME পরিবর্তনশীলটি কী?
প্রতীক খাদলোয়া

কমান্ডের প্রস্থান কোডটি শূন্য না হলে কেবল ইমেল করার কোনও উপায় আছে?
প্রতীক খাদলোয়া

1
@ প্রতীকখাদলোয়া, ক্রোনটব থেকে (৫): Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd line of the crontab's owner. PATH is set to "/usr/bin:/bin". HOME, SHELL, and PATH may be overridden by settings in the crontab; LOGNAME is the user that the job is running from, and may not be changed.
লিঙ্গফিশ

2
একাধিক mailxবাস্তবায়ন রয়েছে; তাদের মধ্যে কিছু এই -Eবিকল্পটি সরবরাহ করে। উবুন্টুতে আপনি bsd-mailxবা heirloom-mailxপ্যাকেজগুলি চান ; mailutilsপ্যাকেজের মাধ্যমে একটি Gnu রয়েছে mailxএকটি ভিন্ন কমান্ড -E
স্মাইলার্স

2

আর একটি সমাধান হ'ল সাবজেক্ট লাইনের সাথে শেল স্ক্রিপ্ট লিখতে চাইলে যে ডান কমান্ডটি ডাকে। আপনার উদাহরণে, এটি হবে:

#Optimize_MySQL_Database.sh

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

আপনি আপনার বিন ডিরেক্টরিটি ক্রন্টব ফাইলটিতে সেট করে পাথটিতে অন্তর্ভুক্ত করতে পারেন।


0

এটি ব্যবহার করে দেখুন - কমান্ড লাইনে নিম্নলিখিত কোডটি প্রয়োগ করুন ---

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" YOUR@MAIL.COM.**
  • আপনাকে গাইড করার জন্য এটি কেবল একটি রেফারেন্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.