ক্রোন স্ক্রিপ্ট মাভেরিক্সে কার্যকর হচ্ছে না


12

আমি নীচে একটি ব্যবহারকারী ক্রন্টব ফাইলটি কনফিগার করেছি:

*/2 * * * * /Users/[my user]/Dropbox/htdocs/auto-update.sh

তবে এটি কার্যকর হবে না। আমি 10-15 মিনিটের মতো অপেক্ষা করলাম। কেন?

কমান্ড অটো- আপডেট.শ ম্যানুয়ালি কার্যকর করা হলে সহজেই চলে। আমি কীভাবে মৃত্যুদন্ড কার্যকর করার শৃঙ্খলা ছিন্ন করতে পারি এবং আমার স্ক্রিপ্টটি ক্রোন থেকে চলতে পারি?


1
আপনি কোন ওএস চালাচ্ছেন? ক্রোন ওএস এক্স-এ অবহিত করা হয়েছে যাতে আপনাকে ডিমনটি শুরু করার দরকার হতে পারে?
bmike

সর্বশেষ, 10.9.2। আমি এটা কিভাবে করব? উদাহরণস্বরূপ আমি কেবল প্রতি ঘন্টা একটি স্ক্রিপ্ট কাজ করতে চাই। উপরের স্ক্রিপ্টে আমি মরিয়া হয়েছি কারণ এটি কাজ করে না, এবং প্রতি 2 মিনিটে এটির জন্য এটি পরিবর্তন করে ified
রোমাওয়ালসার

1
ক্রোনটব ফাইল উপস্থিত থাকলে ক্রোন ডেমন স্বয়ংক্রিয়ভাবে শুরু করা উচিত (এর পরিবর্তে, চালু করা)। দেখুন /System/Library/LaunchDaemons/com.vix.cron.plist (বিশেষ করে KeepAliveএবং QueueDirectoriesআইটেম)।
গর্ডন ডেভিসন

ঠিক আছে, কিপলাইভ রয়েছে তবে কেবলমাত্র '/ etc / crontab' রয়েছে এমন তালিকা রয়েছে যা অস্তিত্বহীন। কুইডির ডিরেক্টরিতে সীমিত ফোল্ডার '/ usr / lib / cron / tabs' তে বিদ্যমান ফাইল রয়েছে। এটি su এবং vim দিয়ে খোলার সময় আমার কাজ রয়েছে।
রোমাওয়ালার

উত্তর:


17

ক্রোন জব যে পরিবেশে চালিত হয় তা ইন্টারেক্টিভ শেল থেকে কিছুটা আলাদা; সম্ভবত স্ক্রিপ্টটি চলছে তবে সফলভাবে নয় successfully সবচেয়ে বড় পার্থক্যগুলির মধ্যে একটি হ'ল ক্রোন কাজের জন্য, ডিফল্ট PATH কেবল "/ usr / bin: / bin" হয়, তাই আপনি যদি / usr / bin বা / বিন-তে নেই এমন কোনও আদেশ ব্যবহার করেন তবে সেগুলি হবে না পাওয়া যায় না যদি না আপনার স্ক্রিপ্টটি তার নিজস্ব PATH সেট করে, বা আদেশগুলিতে সুস্পষ্ট পথ সরবরাহ করে। অন্য বড় পার্থক্যটি হ'ল এটি একটি ইন্টারেক্টিভ সেশনের সাথে সংযুক্ত নয়, সুতরাং যদি এটি ইন্টারেক্টিভ কিছু করার চেষ্টা করে (টার্মিনাল থেকে পড়ুন ইত্যাদি) যা ব্যর্থ হবে। ক্রোন এন্ট্রি এতে পরিবর্তন করার চেষ্টা করুন:

*/2 * * * * /Users/[my user]/Dropbox/htdocs/auto-update.sh >>/tmp/auto-update.log 2>&1

... এবং দেখুন লগতে তথ্যমূলক কিছু দেখা যায় কিনা।


এটি আমার প্রচেষ্টার চেয়ে ভাল - যদি আমার উত্তরটি আরও ভাল করে তোলে তবে আমার লগার ধারণা অন্তর্ভুক্ত করতে দ্বিধা বোধ করবেন।
bmike

লগ শুধুমাত্র প্রদর্শিত হয়নি।
রোমাওয়ালসার

@ রোমাওয়ালার: এটি অদ্ভুত - এর অর্থ এটি স্ক্রিপ্টটি চালু করার সময় পর্যন্ত পাওয়া যাচ্ছে না। আমি দৌড়ে ps -ax | grep [c]ronগিয়ে দেখব যে এটি ক্রোন ডেমন (/ usr / sbin / ক্রোন) চলমান তালিকাবদ্ধ করে কিনা। যদি তা হয় তবে বিমিকের লগার পরীক্ষা করে দেখুন। যাই হোক না কেন, কনসোল ইউটিলিটিতে লগগুলি (/var/log/system.log এবং "সমস্ত বার্তা" আইটেমটি দেখুন) দেখুন এবং প্রাসঙ্গিক-কিছু আছে কিনা তা দেখুন।
গর্ডন ডেভিসন

হ্যাঁ, এটা আছে। তবে লগগুলি নির্ধারিত সময়ে শুরু হওয়া কোনও কিছুই দেখায় না।
রোমাওয়ালসার

4

এটি বলা শক্ত, তবে আপনি যদি প্রতি 5 মিনিট বা তার পরে চালানোর জন্য একটি দ্বিতীয় ক্রোন জব যুক্ত করেন এবং এটি কোনও সিস্টেম নির্মিত সরঞ্জামকে কল করে থাকে যা system.log এ বার্তা লগ করে?

0,5,10,15,20 * * * * /usr/bin/logger "cron is working"

এইভাবে আপনি জানতে পারবেন যে ক্রোন ক্রিয়াকলাপাধীন ব্যবহারকারীর জন্য চলছে এবং এটি ক্রোন শুরু করা বা আপনার স্ক্রিপ্ট ঠিক করার উপর ফোকাস করতে পারে যাতে এটি সীমিত ক্রোন পরিবেশে চলে। (আপনি প্রাচীরের ঘড়ির দিকে তাকান এবং শীঘ্রই বা পরবর্তী কয়েক মিনিট পরে আসা কয়েকবার বাছাই করতে পারেন - উদাহরণস্বরূপ 12:34 এ সম্পাদনাটি কয়েক মিনিটের জন্য ক্রোন ফাইলটি চালাতে এবং সংরক্ষণ করতে 35,36,37,38 এ রাখুন ।)


4

আপনি এই প্রশ্নটি জিজ্ঞাসা করেছেন এমন কিছু সময় হয়েছে, তবে মনে হচ্ছে এই থ্রেডে কোনও সমাধান আসে নি।

আপনি যেভাবে ব্যবহারকারী-ক্রন্টব তৈরি করেন তার উপর নির্ভর করে এটি সম্পাদনা করার পরে এটি কার্যকর করা প্রয়োজন:

crontab ~/.yourcrontabfile

নতুন ক্রন্টব (এটি সংশোধন করার পরেও) সক্রিয় হয়েছে কিনা তা দেখতে, পরীক্ষা করে দেখুন:

crontab -l

যে কাজ করে না। Crontab -l শো crons সেট আপ করা হয়েছে, কিন্তু এটি এখনও কাজ করে না।
PKHunter

1

আমারও একই সমস্যা ছিল। আপনার বাশ স্ক্রিপ্টে আপনাকে পথটি যুক্ত করতে হবে:

#!/bin/sh
PATH=/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin

0

আমারও একই সমস্যা ছিল। আমার ক্রন্টব ফাইলটিতে আমার চাকরির পরে আমি একটি নতুন লাইন যুক্ত করার পরে এটি চলে গেল (আমি মোট ক্রোনটব এন 100 বি, তাই এই আচরণটি ব্যাপকভাবে পরিচিত কিনা তা আমার কোনও ধারণা নেই)।

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