ক্রোন জব চলছে না?


24

আমার কাছে এমন একটি ক্রন্টব ফাইল রয়েছে যা দেখতে দেখতে:

* * * * * /home/abliskovs/update/update.sh

যাইহোক যখন আমি কাজটি চালিত হয়েছে তার প্রমাণের জন্য সিসলগটি পরীক্ষা করি, এমন কোনও কিছুই নেই যা ইঙ্গিত দেয় যে এটি কখনও চালিত। এটি চলছে কিনা তা আমি কীভাবে পরীক্ষা করতে পারি?

crontab -l নিম্নলিখিত ফলাফলগুলি:

* * * * * /home/abliskovs/update/update.sh


ঠিক আছে, আমি এটি করেছি।
অ্যালেক্স ব্লিসকভস্কি

সম্ভবত একটি বোবা প্রশ্ন, তবে এটি আমার আগে ঘটেছিল তাই আমি যাইহোক জিজ্ঞাসা করব। ক্রোন ডেমনটি আসলে চলছে কিনা তা নিশ্চিত করুন! : পি দ্বিতীয় অনুমানটি হ'ল অনুমতি, নিশ্চিত করুন যে এটি ক্রোনজব চালিয়ে ব্যবহারকারীর দ্বারা নির্বাহযোগ্য।
ম্যাটিয়াস আহ্নবার্গ

উত্তর:


21

আপনার ক্রন্টব এন্ট্রি শেষে একটি >> / tmp / testlog.log যুক্ত করুন (কোনও ফাইলের আউটপুট পুনর্নির্দেশ করতে আপনি তদন্ত করতে পারেন বা এটি চলমান কিনা তা পরীক্ষা করতে পারেন, অতিরিক্তভাবে একটি 2> & 1 এ ত্রুটি কনসোল থেকে আউটপুট অন্তর্ভুক্ত করবে)

উদাহরণ

0 * * * * / home/abliskovs/update/update.sh 2> & 1 /tmp/testlog.log

নিম্নলিখিতগুলি নিশ্চিত করুন:

  • একটি সঠিক পদ্ধতিতে ক্রোনজবস যুক্ত করুন। আপনি যদি নিজের অ্যাকাউন্টে ক্রন্টব -e ব্যবহার করেন তবে আপনার ব্যবহারকারীর সাথে স্ক্রিপ্টগুলি চালানো হয় (এবং এর ফলে ক্রন্টব এন্ট্রিটির একটি ক্ষেত্র কম থাকে - ব্যবহারকারী এটি চালানোর জন্য, এটি পরিচিত হিসাবে)। আপনি যদি উপরের স্নিপডকে /etc/cron.d এ অনুলিপি করে অনুলিপি করেন তবে আপনি কোনও ব্যবহারকারী নির্দিষ্ট না করায় এটি ব্যর্থ হবে (অথবা এটি "বাশ" নামে কোনও ব্যবহারকারীকে খুঁজে না পেয়ে)।
  • স্ক্রিপ্ট ফাইলটি নির্বাহযোগ্য কিনা তা নিশ্চিত করুন, অন্যথায় এটি কার্যকর করে না।
  • ক্রোন জবস সুডো পরিষেবা পুনরায় লোড করুন বা ক্রোন পরিষেবা পুনরায় চালু করুনsudo /etc/init.d/cron restart

কীভাবে একটি ফাইলকে কার্যকর করা যায়?

আপনার ফাইলকে কার্যকর কার্যকর করার কয়েকটি উপায় to

chmod +x /home/abliskovs/update/update.sh 

chmod -R 0755 /home/abliskovs/update/update.sh

chmod a+x /home/abliskovs/update/update.sh

3

স্ক্রিপ্ট ফাইলটি নির্বাহযোগ্য {chmod 755 is নাহলে এটি কার্যকর করে না তা নিশ্চিত করুন


2
একটি ফাইলকে কার্যকর করার জন্য, আপনি চালাতে পারেনchmod +x filename
স্টেফানো প্যালাজো

0

শেল স্ক্রিপ্টটিতে update.shসম্ভবত ত্রুটি রয়েছে, উদাহরণস্বরূপ কিছু কমান্ড কার্যকর করা যায় না কারণ আদেশটি সন্ধান করা যায় না। এই ক্ষেত্রে এটি আপনার PATH ভেরিয়েবলের কমান্ডের পথ জুড়তে বা সরাসরি আপনার কমান্ডের সামনে যুক্ত করতে সহায়তা করতে পারে। এটি মেলটো ই-মেইল ঠিকানা, ই-মেলগুলি নির্দিষ্ট করতে সহায়তা করে যা ক্রোনজবগুলি সম্পাদন করে ফলাফল এই ঠিকানায় প্রেরণ করা হয়

PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain 

ত্রুটির জন্য mailআপনি স্থানীয় মেলবক্স এবং সিসলগ ফাইলটিও পরীক্ষা করতে পারেন /var/log/syslogক্রোনজবস কেন কাজ না করতে পারে এই সম্পর্কিত প্রশ্নটি দেখুন ।


0

আমি একই সমস্যাটি অনুভব করেছি এবং আমার কারণ হ'ল ক্রন্টব চালাচ্ছিল না কারণ এটির অনুমতি নেই। আমি ফাইল পরিবর্তন করেছি এবং এটিকে /tmitted / আউটপুট.লগ এ রেখেছি

*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output

কাজ করেছে কিনা আমাকে জানান.

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