আমি কীভাবে ক্রোনকে আমার সিসলোগটি পূরণ করতে বাধা দিতে পারি?


31

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা প্রতি মিনিটে কার্যকর করা দরকার। সমস্যাটি হ'ল ক্রোন /var/log/syslogপ্রতিটি সময় এটি প্রয়োগ করে লগ ইন করে। আমি বারবার এই জাতীয় পুনরাবৃত্তি এরকম কিছু দেখে শেষ করছি /var/log/syslog:

Jun 25 00:56:01 myhostname /USR/SBIN/CRON[1144]: (root) CMD (php /path/to/script.php > /dev/null)

আমি ডেবিয়ান ব্যবহার করছি

আমার প্রশ্নগুলি: আমি ক্রোনকে কী বলতে পারি যে প্রতিবার সিসলগে এই তথ্যটি লিখবেন না?


1
একটি ব্যস্তবক্স প্ল্যাটফর্মে এটি কীভাবে করবেন কোনও ধারণা?
/Etc/syslog.conf

উত্তর:


25

আপনি ক্রোন এর আউটপুট একটি পৃথক লগ সুবিধায় প্রেরণ করতে পারেন আপনার /etc/syslog.confফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:

# Log cron stuff
cron.*                                                  /var/log/cron

এটি ঘোরানো নিশ্চিত করার /var/log/cronজন্য আপনার যুক্ত করতে /etc/logrotate.d/syslogভুলবেন না, যেমন

# /etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
    sharedscripts
    postrotate
    /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

ইনপুট দেওয়ার জন্য আপনাকে ধন্যবাদ। আমি ক্রোন যুক্ত করেছি * কেন এটি কিছু করছে না তা নিশ্চিত নন
ইউজার7321

1
ওহে মানুষ, আমার পক্ষ থেকে মহাকাব্যিক ব্যর্থতা। আমি syslog.conf সম্পাদনা করছিলাম এবং ক্রোন পুনরায় চালু করছিলাম! এতে কোনও আশ্চর্য হওয়ার কিছু নেই যে .. আমি
সিসলগ

1
ক্রোন.লগ সক্ষম করা ক্রোন বার্তাগুলি সিসলগে লেখা থেকে বাধা দেয় না।
বেসিক 6

16

ঠিক আছে,

আমার প্রশ্নের সমাধানটি ছিল:

পরিবর্তন

*.*;auth,authpriv.none     -/var/log/syslog

থেকে

*.*;cron,auth,authpriv.none     -/var/log/syslog

মধ্যে /etc/syslog.conf এবং তারপরে সিলেগ পুনরায় আরম্ভ করুন

/var/log/cron.logডেভ চেনি প্রস্তাবিত হিসাবে ক্রোনকে আমার কাছে প্রেরণ করা হয়েছিল এবং এটিতে একটি লোগ্রোটেট আটকে দেওয়া হয়েছিল। দাভসের পরামর্শের সাথে আমার সংস্থানটি আমার পরিস্থিতির পক্ষে সর্বোত্তম কারণ:

  1. এটা রাখে /var/log/syslog ক্রোন বার্তাগুলির সাথে বিশৃঙ্খলা থেকে করে
  2. আমি এখনও ক্রোন বার্তা পেয়েছি (যা সমস্যা সমাধানের জন্য দুর্দান্ত)
  3. লোগ্রোটেট /var/log/cron.logখুব বড় হওয়া থেকে বিরত রাখে ।

7
আধুনিক সিস্টেমগুলির বিষয়ে যারা উদ্বিগ্ন তাদের জন্য, rsyslogডেবিয়ান 8.0 জেসিতে একটি রয়েছে, তাই এটি /etc/rsyslog.confসম্পাদনা করা উচিত। যাইহোক, যুক্ত করা স্ট্রিংগুলি ডিফল্টরূপে ইতিমধ্যে সেখানে রয়েছে, আপনাকে কেবল এটির অসুবিধা করতে হবে (লাইন 63)। আর /var/log/cron.logআগে থেকেই /etc/logrotate.d/syslogঠিক প্যাকেজ রক্ষণাবেক্ষণকারীকে এই থ্রেড পড়েছেন।
ট্রান্সলুসেন্টক্লাউড

আপনার প্রশ্ন ছিল Is there any way I can tell cron not write this information to syslog every time। এটি উত্তর নয়।
এনটিডি

@ ট্রান্সলুসেন্টক্লাউড কেবল যুক্ত করতে চেয়েছিলেন যে উবুন্টু 14 এলটিএস-এ আমার আরএসল্লগ কনফিগারেশনটি /etc/rsyslog.d/50-default.conf এ ছিল।
জনি

8

পরিবর্তন / ইত্যাদি / ডিফল্ট / ক্রোন

  # Or, to log standard messages, plus jobs with exit status != 0:
  # EXTRA_OPTS='-L 5' 
  #
  # For quick reference, the currently available log levels are:
  #   0   no logging (errors are logged regardless)
  #   1   log start of jobs
  #   2   log end of jobs
  #   4   log jobs with exit status != 0
  #   8   log the process identifier of child process (in all logs)
  #
  EXTRA_OPTS="-L 0"

ডিফল্টরূপে EXTRA_OPTS লাইনটি ""


এই আইএমওটি সঠিক সমাধান: লগ রেকর্ড উত্পন্ন করবেন না।
এনটিডি

4

উবুন্টু 14.04.5 এ (এবং সম্ভবত অন্য কোথাও) সিসলগডের পরিবর্তে আরএসস্লোগড রয়েছে। ট্রান্সলুসেন্টক্লাউড এটি দেবিয়ান জেসির সাথে ইঙ্গিত করেছিল, তবে একই সমাধান (তবে সিসলগডকনফের পরিবর্তে আরএসল্লগ.কনফ পরিবর্তন করা) উবুন্টুতে কাজ করে না বলে মনে হয়।

এটি প্রদর্শিত হয় যে /etc/rsyslog.d/50-default.conf এ সেট করা মানগুলি /etc/rsyslog.conf এ সেট করা স্টাফের চেয়ে প্রকৃতপক্ষে অগ্রাধিকার গ্রহণ করবে, সুতরাং সেখানে পরিবর্তনগুলি করা এবং তারপরে আরএসস্লগ এবং ক্রোন পুনরায় চালু করা ভাল। অন্যথায় আপনি এখনও সিসলোগে ক্রোন লগিংয়ের অতিরিক্ত ক্রোন লগিং, ক্রোনলগে ক্রোন লগিং (তবে একচেটিয়াভাবে নয়) দিয়ে শেষ করবেন।

আমার /etc/rsyslog.d/50-default.conf এ প্রথম কয়েক দফা লাইন:

*.*;cron,auth,authpriv.none     -/var/log/syslog
cron.*                          /var/log/cron.log

ও ভয়েলা!


1
খুব সুন্দর উত্তর। এটি বলেছে, স্ট্যাক ওভারফ্লোতে ভবিষ্যতের অংশগ্রহণের জন্য আপনি নতুন প্রশ্নগুলিতে মনোনিবেশ করতে চাইতে পারেন কারণ এটি অত্যন্ত পুরানো।
ম্যাগেলান

3

আমি কেবল এটি অন্যভাবে সমাধান করেছি, তবে আমার লক্ষ্যটি কিছুটা আলাদা ছিল। আমি আটরান গুলি চালানোর সময় উত্পন্ন ক্রোন লগ এন্ট্রিগুলি বাতিল করতে চেয়েছিলাম যাতে আমার হার্ড ড্রাইভগুলি ঘুমাতে পারে এবং প্রতি 5 মিনিটে ঘুম থেকে উঠতে পারে না।

পাইপ দিয়ে প্রিফিক্স করে শেল কমান্ড হিসাবে সিসলগ.কমের একটি লগ ইভেন্টের লক্ষ্য থাকতে পারে, এবং তাই আমি চাই না এমনগুলি ফেলে দেওয়ার জন্য গ্রেপ ব্যবহার করেছি। তাই:

cron.*              | grep -v "(/usr/libexec/atrun)" >> /var/log/cron.log

আমি তদন্ত করিনি তবে আমি বিশ্বাস করি যে লগ এন্ট্রিগুলি এখনও চাইলে অন্য লক্ষ্যে প্রেরণ করা সম্ভব হওয়া উচিত।


3

প্রকৃতপক্ষে, 'সেরা' (কেউ দাবি করতে পারে) সমাধান হ'ল @ ডেভচেনি পরামর্শ দিয়েছেন এবং ব্যবহারকারীর 21৩২১ শেষ পর্যন্ত কী করেছে , এর তৃতীয় পদক্ষেপ যা আমি সুপারিশ করব:

  1. ক্রোন-সম্পর্কিত লগ বার্তাগুলি / var / লগ / সিস্লোগে যুক্ত করা থেকে সিসলগড প্রতিরোধ করা
  2. ক্রোন লগ বার্তাগুলি নিশ্চিত করে কোথাও লগ করা হবে (বিশেষত, / var / লগ / ক্রোন) + ক্রোন লগের জন্য লগ ঘূর্ণন নিশ্চিত করা।
  3. ক্রোন-সম্পর্কিত লগ বার্তাগুলি / ভার / লগ / বার্তাগুলিতে সংযোজন করা থেকে সিসলগড রোধ করা হচ্ছে

আপনার মধ্যে /etc/syslog.conf, এই পরামর্শগুলির সংমিশ্রণটি নিম্নলিখিতগুলির মতো কিছু পরিবর্তন করে:

*.*;cron,auth,authpriv.none                         -/var/log/syslog
auth,authpriv.none;daemon.none;mail,news.none       -/var/log/messages

মধ্যে:

cron.*                                              /var/log/cron.log
*.*;cron,auth,authpriv.none                         -/var/log/syslog
auth,authpriv.none;cron,daemon.none;mail,news.none  -/var/log/messages

এবং ক্রোন এবং সিসলোগড উভয় পরিষেবাই জোর করে পুনরায় লোড (বা পুনঃসূচনা) করতে ভুলবেন না, যেমন:

/etc/init.d/syslogd force-reload
/etc/init.d/cron force-reload

দ্রষ্টব্য: এটি rsyslogd এর সাথেও কাজ করে।


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