প্রায়শই, crontab স্ক্রিপ্ট পরিকল্পনাতে বা হিসাবে প্রত্যাশিত মৃত্যুদন্ড কার্যকর করা হয় না. যে জন্য অনেক কারণ আছে:
ভুল ক্রন্টব স্বরলিপি
অনুমতি সমস্যা
পরিবেশ ভেরিয়েবল
এই সম্প্রদায় উইকি জন্য শীর্ষ কারণ একত্রিত করার লক্ষ্যে কাজ করে crontab প্রত্যাশিত হিসাবে স্ক্রিপ্ট মৃত্যুদন্ড কার্যকর করা হচ্ছে না. একটি পৃথক উত্তর প্রতিটি কারণ লিখুন.
এবং ফিক্স(স্প্যানিশ ভাষায়) যে এক কারণে - এটা মৃত্যুদন্ড কার্যকর করা হয় না কেন সম্পর্কে বিস্তারিত উত্তর প্রতি এক কারণ অন্তর্ভুক্ত করুন.
শেল থেকে প্রত্যাশিত হিসাবে চালানো কিন্তু শস্যদানা দ্বারা ভুল করে চালানো কমান্ড.
শস্যদানা আপনার কাজ পরিবেশ ভেরিয়েবল একটি সংক্ষিপ্ত সেট পাস. পার্থক্যটি দেখতে, এর মতো একটি ডামি কাজ যুক্ত করুন:
>* * * * * ইএনভি /টিএমপি / ইএনভিআউটপুট
জন্য অপেক্ষা করুন /tmp/env.output তৈরি করা হবে, তারপর আবার কাজ মুছে ফেলুন. এখন বিষয়বস্তু তুলনা /tmp/env.output আউটপুট সঙ্গে env আপনার নিয়মিত টার্মিনালে চালান.
এখানে একটি সাধারণ "গটচা" রয়েছে PATH পরিবেশ পরিবর্তনশীল ভিন্ন হচ্ছে. হতে পারে আপনার ক্রন স্ক্রিপ্টটি কমান্ডটি ব্যবহার করে somecommand পাওয়া গেছে /opt/someApp/bin, যা আপনি যুক্ত করেছেন PATH মধ্যে /etc/environment? ক্রন উপেক্ষা করে PATH যে ফাইল থেকে, তাই রানিং somecommand শস্যদানা সঙ্গে চালানোর সময় ব্যর্থ হবে আপনার স্ক্রিপ্ট থেকে, কিন্তু একটি টার্মিনালে চালানো যখন কাজ. এটি থেকে যে ভেরিয়েবল উল্লেখযোগ্য মূল্য /etc/environment ক্রন জবগুলিতে প্রেরণ করা হবে, কেবল ভেরিয়েবলগুলি ক্রন বিশেষভাবে নিজেকে সেট করে না, যেমন PATH.
এটি পেতে, কেবল নিজের সেট করুন PATH স্ক্রিপ্ট উপরের পরিবর্তনশীল. যেমন
#!/bin/bashPATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin# rest of script follows
কিছু শুধু পরিবর্তে সব কমান্ড পরম পাথ ব্যবহার করতে পছন্দ করে. আমি যে বিরুদ্ধে সুপারিশ. আপনি যদি আপনার স্ক্রিপ্টটি একটি ভিন্ন সিস্টেমে চালাতে চান তবে কী হবে তা বিবেচনা করুন এবং সেই সিস্টেমে কমান্ডটি রয়েছে /opt/someAppv2.2/bin পরিবর্তে. আপনি প্রতিস্থাপন পুরো স্ক্রিপ্ট মাধ্যমে যেতে হবে চাই /opt/someApp/bin সঙ্গে /opt/someAppv2.2/bin পরিবর্তে শুধু স্ক্রিপ্ট প্রথম লাইনে একটি ছোট সম্পাদনা করছেন.
আপনি ক্রন্টব ফাইলে পাথ ভেরিয়েবলও সেট করতে পারেন, যা সমস্ত ক্রন কাজের ক্ষেত্রে প্রযোজ্য হবে যেমন
আমার শীর্ষ গোটচা: আপনি যদি শেষে একটি নতুন লাইন যুক্ত করতে ভুলে যান crontab ফাইল. অন্য কথায়, ক্রন্টব ফাইলটি একটি খালি লাইন দিয়ে শেষ হওয়া উচিত
নীচে এই ইস্যুটির জন্য ম্যান পৃষ্ঠাগুলির প্রাসঙ্গিক বিভাগটি রয়েছে (man crontab তারপর শেষ এড়িয়ে যান):
Although cron requires that each entry in a crontab end in a newline character, neither the crontab command nor the cron daemon will detect this error. Instead, the crontab will appear to load normally. However, the command will never run. The best choice is to ensure that your crontab has a blank line at the end. 4th Berkeley Distribution 29 December 1993 CRONTAB(1)
স্ক্রিপ্টের ফাইলের নাম cron.d/, cron.daily/, cron.hourly/, ইত্যাদি, বিন্দু থাকা উচিত নয় (.), অন্যথায় চালান-অংশ তাদের লাফালাফি করা হবে.
রান-পার্টস দেখুন (8):
If neither the --lsbsysinit option nor the --regex option is given then the names must consist entirely of upper and lower case letters, dig‐ its, underscores, and hyphens. If the --lsbsysinit option is given, then the names must not end in .dpkg-old or .dpkg-dist or .dpkg-new or .dpkg-tmp, and must belong to one or more of the following namespaces: the LANANA-assigned namespace (^[a-z0-9]+$); the LSB hierarchical and reserved namespaces (^_?([a-z0-9_.]+-)+[a-z0-9]+$); and the Debian cron script namespace (^[a-zA-Z0-9_-]+$).
সুতরাং, আপনার যদি ক্রন স্ক্রিপ্ট থাকে backup.sh, analyze-logs.pl মধ্যে cron.daily/ ডিরেক্টরি, আপনি এক্সটেনশন নাম মুছে ফেলার জন্য ভাল চাই.
যদি আপনার ক্রন্টব কমান্ডের একটি থাকে % এটা প্রতীক, শস্যদানা এটা ব্যাখ্যা করার চেষ্টা করে. সুতরাং যদি আপনি একটি সঙ্গে কোন কমান্ড ব্যবহার করা হয় % এটা (যেমন তারিখ কমান্ড একটি বিন্যাস স্পেসিফিকেশন হিসাবে) আপনি এটা অব্যাহতি প্রয়োজন হবে .
এটি ব্যবহারকারীর পাসওয়ার্ড মেয়াদ শেষ হয়ে গেছে যে সম্ভব. এমনকি রুট এর পাসওয়ার্ড মেয়াদ শেষ করতে পারেন. আপনি করতে পারেন tail -f /var/log/cron.log এবং আপনি ক্রন পাসওয়ার্ড মেয়াদ শেষ সঙ্গে ব্যর্থ দেখতে হবে. আপনি এই কাজ করে মেয়াদ শেষ না পাসওয়ার্ড সেট করতে পারেন: passwd -x -1 <username>
কিছু সিস্টেমে (ডেবিয়ান, উবুন্টু) শস্যদানা জন্য লগিং ডিফল্টরূপে সক্রিয় করা হয় না. মধ্যে / ইত্যাদি / আরএসআইএসলগকনফ অথবা / ইত্যাদি / আরএসআইএসলগডি / 50-ডিফল্ট.কনফ লাইন:
# cron.* /var/log/cron.log
সম্পাদনা করতে হবে (sudo nano /etc/rsyslog.conf) অসম্পূর্ণ:
cron.* /var/log/cron.log
এর পরে, আপনাকে এর মাধ্যমে আরএসআইএসএলজি পুনরায় চালু করতে হবে
কিছু সিস্টেমে (উবুন্টু) ক্রনের জন্য পৃথক লগিং ফাইল ডিফল্টরূপে সক্ষম করা হয় না, তবে ক্রন সম্পর্কিত লগগুলি উপস্থিত হচ্ছে সিসলগ ফাইল. এক ব্যবহার করতে পারেন
ক্রোনকে প্রভাবিত করার জন্য আপনাকে অবশ্যই ক্রন্টব-ই বন্ধ করতে হবে আমি ফাইল সম্পাদনা এবং ব্যবহার :ওয়াট এটা লিখতে কিন্তু আমি প্রস্থান না হওয়া পর্যন্ত কাজ শস্যদানা যোগ করা হয় না ব্যবহার করে উদাহরণস্বরূপ. তাই আমি পরে পর্যন্ত কাজ দেখতে পাবেন না আমি :প্রশ্ন ' এছাড়াও