উবুন্টুতে (ব্যর্থ) ক্রোন-জব থেকে কীভাবে ইমেল পাবেন?


45

আমি উবুন্টুতে এক্সিকিউটেবলকে একটিতে রেখে ক্রোন-জব তৈরি করি /etc/cron.{daily,hourly,monthly,weekly}। ক্রোন দিয়ে শুরু প্রচুর ডিরেক্টরি রয়েছে:

kent@rat:~$ ls -ld /etc/cron*
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.d
drwxr-xr-x 2 root root 4096 2009-07-16 13:17 /etc/cron.daily
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.hourly
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.monthly
-rw-r--r-- 1 root root  724 2009-05-16 23:49 /etc/crontab
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.weekly

আমি আমার স্ক্রিপ্টগুলি থেকে ইমেল পেতে চাই যখন:

  1. একটি স্ক্রিপ্ট ব্যর্থ হয় এবং শূন্যের বহির্গমন কোড দেয়।
  2. স্ক্রিপ্টে আমাকে বলার মতো কিছু আছে

আমি এসএসএমটিপি ইনস্টল করেছি এবং কাজ করছি, আমি আমার গুগল অ্যাকাউন্ট থেকে আমার মেইল ​​প্রেরণ করি। এসএসএমটিপি কেবলমাত্র একটি অ্যাকাউন্ট ব্যবহার করে মেল পাঠাতে পারে তা আমার পক্ষে সমস্যা নয়। এটি কেবল একটি হোম সার্ভার এবং আমার কাছে থাকা ব্যবহারকারীদের ক্রোন-জব যুক্ত করার ক্ষমতা নেই।

আমি জানতে চাই যে স্ক্রিপ্টগুলি থেকে মেইলিং সাধারণত লিনাক্স / ইউনিক্স এবং সাধারণভাবে উবুন্টুতে কীভাবে কাজ করে। উপরের দুটি পরিস্থিতিতে মেল পাওয়ার জন্য আমার একটি ভাল উপায় সম্পর্কেও জানতে চাই।

উত্তর:


60

ডিফল্টরূপে ক্রোনটিব সেই অ্যাকাউন্টের মালিককে ইমেল করবে যার অধীনে ক্রন্টবটি চলছে।

সিস্টেম-প্রশস্ত crontab / etc / crontab ব্যবহারকারীর `মূলের অধীনে চলে

যেহেতু মূলটি ব্যাপকভাবে ব্যবহৃত হয়, তাই আমি আপনার / ইত্যাদি / উপস্ব ফাইলগুলিতে কোনও রুট ওরফে যুক্ত করার পরামর্শ দিই। (এর পরে 'নতুনালিজ' চালান)

এটির গঠনের সাধারণ উপায়টি হ'ল সিস্টেমের অন্য ব্যবহারকারীর সাথে মূল স্থাপন করা যেমন উদাহরণস্বরূপ আমার জন্য আমি 'রুট' থেকে 'ফিল' (আমার ব্যবহারকারীর অ্যাকাউন্ট) এবং আমার বাহ্যিক ইমেল ঠিকানাতে ওরফে 'ফিল' ব্যবহার করব।

যদি আপনার কাছে কোনও নির্দিষ্ট ব্যবহারকারী ক্রোন থাকে যা আপনি আপনাকে আউটপুটতে ইমেল করতে চান তবে ব্যবহারকারীকে অন্য ইমেল ঠিকানায় পুনর্নির্দেশের জন্য আপনি আবার / ইত্যাদি / উপাধি (আপনার কাছে অতিরিক্ত এক্সেস রয়েছে) ব্যবহার করতে পারেন, বা নীচের নীচে ব্যবহার করতে পারেন আপনার ক্রোনটব শীর্ষ:

MAILTO="email@domain.com"

যদি কোনও স্থানীয় ব্যবহারকারীর কাছে মেল প্রেরণ করা হয় তবে আপনি তার পরিবর্তে কেবল ব্যবহারকারীর নামটি রেখে দিতে পারেন:

MAILTO=someuser

আপনার আরও তথ্যের প্রয়োজন হলে ক্রন্টব (5) চালিয়ে দেখুন:

man 5 crontab

/etc/aliasesএন্ট্রিগুলি কি ফর্ম্যাটটি অনুসরণ করার কথা নয় name: value1, value2, ...? আমি জানি না, সম্ভবত গত 8 বছরের কোনও সময়ে ফর্ম্যাটটি পরিবর্তন করা হয়েছিল।
নাথান জোনস

1
"আমার জন্য আমি 'রোল' থেকে 'ফিল' (আমার ব্যবহারকারীর অ্যাকাউন্ট) এবং আমার বাহ্যিক ইমেল ঠিকানাতে ওরফে 'ফিল' নাম করব" " কোনও বাহ্যিক ইমেল ঠিকানার 'ফিল' কীভাবে রাখবেন?
হাওয়ার্ড লি

29

ভিক্সি ক্রোন থেকে ইমেল প্রেরণের জন্য আপনাকে এমন কিছু প্রয়োজন হবে যা সেন্ডমেল আদেশটি প্রতিলিপি করে। সুতরাং পোস্টফিক্স বা এসএসএমটিপি ইনস্টল করার ফলে এই অংশটি সাজানো হবে। যদি আপনার পোস্টফিক্স ব্যবহার করা হয় তবে সিস্টেমের ব্যবহারকারীদের প্রকৃত ইমেল ঠিকানাগুলিতে মানচিত্র করতে অ্যালিয়াস ফাইল ব্যবহার করা যেতে পারে।

ক্রন্টবের শীর্ষে MAILTO = "foo@bar.com" যুক্ত করা ক্রোন জব থেকে যে কোনও আউটপুট ইমেল করে দেবে। এটি ত্রুটি কোড নির্বিশেষে।

স্ক্রিপ্টগুলির জন্য যে আউটপুটটি সঠিকভাবে এসটিডিআরআর এ ত্রুটি ঘটেছে তারপরে ভুল হয়ে গেলে কেবল ইমেল করা সহজ this

MAILTO="foo@bar.com"
0 5 * * * /bin/some_script > /dev/null

এটি কেবল STDOUT বাতিল করতে পুনঃনির্দেশ করবে। কোনও এসটিডিআরআর বার্তা উপস্থিত থাকলে তারা আপনাকে ইমেল পাবেন।

তবে, আমি খুঁজে পেয়েছি কিছু স্ক্রিপ্টগুলি ভুলভাবে STDOUT হিসাবে ত্রুটিগুলি আউটপুট দেবে এবং প্রস্থান কোডটি 1 এ সেট করবে these আমি ভাবতে পারি কোনও ফাইলের আউটপুট পুনর্নির্দেশ করা, তারপরে যদি প্রস্থান কোডটি 0 আউটপুট না হয় তবে ক্রোন দখল করার জন্য সেই ফাইলটি। যদিও বেশ ভয়ঙ্কর বলে মনে হচ্ছে।



8

আপনি যদি কোনও নির্দিষ্ট ঠিকানায় সমস্ত আউটপুট (stdout এবং stderr) প্রেরণ করতে চান তবে আপনি MAILTOভেরিয়েবলটি ব্যবহার করতে পারেন । উদাহরণস্বরূপ, নিম্নলিখিতটি স্ক্রিপ্টের শীর্ষে রাখুন।

MAILTO="address@example.com"

5

"root: your@email.address" / / ইত্যাদি / উপাধিতে যুক্ত করার চেষ্টা করুন

এটি আপনার ইমেলটিতে সেই ব্যবহারকারীর জন্য সমস্ত বার্তা প্রেরণ করবে। আপনি যদি সমস্ত বার্তা না চান তবে আপনি এটির জন্য একটি ব্যবহারকারী তৈরি করতে পারেন।

যতক্ষণ না স্ক্রিপ্ট কিছু আউটপুট দেয় আপনি একটি মেইল ​​পাবেন।


3

আমার সমস্ত প্রোডাকশন সার্ভারে যা সাধারণত প্রায় 20 ক্রোনজব চালায় আমি পাইথন-ক্রনপ্রেজ প্যাকেজের শপথ গ্রহণ করি। এটি এখানে দেখুন: http://pypi.python.org/pypi/cronwrap । এটি কনফিগার করা সত্যই সহজ এবং সবচেয়ে নির্ভরযোগ্য।


2

আমার মনে হয় না এসএসএমটিপি আপনার যা করা দরকার তা নির্ভর করে। আপনার এমন কিছু দরকার যা ক্রোন প্রক্রিয়াগুলি থেকে মেলটি "গ্রহণ" করতে পারে এবং তারপরে এটি আপনার আসল মেলবক্সে প্রেরণ করতে পারে।

আমি সেন্ডমেল ব্যবহার করি, তবে এটি কারণ আমি একটি পুরানো সান হাত; আমি জানি আজকের দিনে শীতল বাচ্চারা পোস্টফিক্স ব্যবহার করে এটি উপহাস করেছে। আপনার উবুন্টু সম্প্রদায় আপনাকে আপনার মেইল ​​সিস্টেম স্থাপনের জন্য গাইড করতে পারে।


এসএসএমটিপি প্রয়োগসমূহ / বিন /
সেন্ডমেল

2

একটি বিকল্প - আমি সমস্ত ফটোগুলিতে সমস্ত রুট মেল সংরক্ষণাগারভুক্ত করি এবং তারপরে মূল মেলটি মুছি।

আমি একটি স্ক্রিপ্ট ক্রোন করেছি (মূল অংশটি এখানে) -

#!/bin/bash
if `/usr/bin/mail -e`; then
   /usr/bin/mail --print 2>&1 > /tmp/email_${date +"%Y-%m-%d_%H.%M").log
   echo ‘d *’ | /usr/bin/mail -N > /dev/null
fi
exit 0

এটি জিনিসগুলিকে পরিষ্কার রাখে এবং আমি এটিতে নজর রাখতে পারি। আমি কোনও বহিরাগত ইমেল আইডি ইত্যাদিতে একটি দৈনিক মেল ফাইল ইমেল করতে পারি ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.