পরিবেশের ভেরিয়েবলগুলি ক্রোন টাস্কে সেট করতে ব্যর্থ


0

আমি একটি সার্ভারে একটি নতুন ক্রোন টাস্ক ইনস্টল করার চেষ্টা করছি। আমি কমান্ড লাইনের মাধ্যমে প্রক্রিয়াটি চালাতে সক্ষম হয়েছি, তবে ক্রোন দিয়ে এটি চালাতে পারি না। এটি যখন পাঠের কাজটি ক্রোন দিয়ে চালিত হয় তখন প্যাথ এবং পাইথনপথের জন্য পরিবেশগত ভেরিয়েবলগুলি সঠিকভাবে সেট না হওয়ার কারণে হয়। (সার্ভারে সমস্ত ক্রোন জব নিয়ে আমি আসলে এই সমস্যাটিই করছি, তবে সরলতার জন্য এই প্রশ্নের একটি প্রক্রিয়াতে ফোকাস করছি am)

প্রক্রিয়াটির জন্য ক্রোন এন্ট্রি এখানে দেওয়া হল:

### procmon NLite ### */2 * * * * . ~/.bashrc; cd /var/networkip/nlite/proc_mon; . bashrc; cd bin; ./proc_mon.py > /dev/null 2>&1

এখন, proc_mon ডিরেক্টরিতে বাশার্কে রয়েছে:

BASEDIR=$PWD
KODIAK_ROOT=$BASEDIR/
BASEPATH=$KODIAK_ROOT

pathadd PYTHONPATH ${BASEDIR}/lib

সুতরাং, যখন ক্রন্টাস্ক চালানো হবে - পাইথনপথ পুনরায় সেট করা উচিত , তবে এটি ঘটছে না।

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

  • ক্রোন টাস্কে ব্যর্থ হওয়া সার্ভারের সাথে সফলভাবে ক্রোন টাস্ক থেকে সমস্ত বাশার্ক বা ব্যাশ_ প্রোফাইলগুলি তুলনা করুন
  • এটি নিশ্চিত করার জন্য লগ করা পরিবেশের ভেরিয়েবলগুলি এই বিষয়টি

সমাধানগুলিতে আমি আগ্রহী নই:

  • পরিবেশগত ভেরিয়েবল সেট করার জন্য একটি ক্রোন টাস্ক। এমন বেশ কয়েকটি প্রকাক রয়েছে যেগুলি ক্রোন দিয়ে চালানো দরকার এবং সেই নির্দিষ্ট স্ক্রিপ্টের সাথে সম্পর্কিত সকলের আলাদা আলাদা PATH এবং পাইথনপথ ভেরিয়েবল রয়েছে। এটি করা খুব অগোছালো হতে পারে এবং আমি ভবিষ্যতের সার্ভারগুলিতে একই প্রকল্পগুলি এবং ক্রোনগুলি ইনস্টল করার কারণে এটি কোনও দীর্ঘমেয়াদী সমাধান নয়।

আরও তথ্য:

  • সার্ভারে ব্যর্থ ক্রোনটির জন্য লিনাক্স ডিস্ট্রো: সেন্টোস 6.8 প্রকাশ করেছে
  • ক্রোন সাফল্যের সাথে সার্ভারের জন্য লিনাক্স ডিস্ট্রো: রেড হ্যাট এন্টারপ্রাইজ লিনাক্স সার্ভার 5.2 (টিকঙ্গা) প্রকাশ করেছে

যেহেতু ক্রোনগুলি অন্যান্য সার্ভারগুলিতে কাজ করতে সক্ষম তাই সমস্যার অবশ্যই যুক্তিসঙ্গত সমাধান থাকতে হবে।


কে বুঝায় pathadd? আপনি কি বাশ- isms উপর নির্ভর করে? ক্রোনটি ডিফল্টরূপে / বিন / শ ব্যবহার করে আমি বিশ্বাস করি, তাই আপনাকে কমপক্ষে ক্রন্টবায় / বিন / বাশে শেল সেট করতে হতে পারে - man 5 crontab
নিকড

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

আমি ক্রোনটিতে শেল / বিন / ব্যাশে সেট করার চেষ্টা করেছি, এটির সাথেও ভাগ্য নেই।
রেমি

আপডেট: এনভায়রনমেন্ট ভেরিয়েবল আসলে সমস্যা নয়। যোগ করার পদ্ধতি set +o posixএকটি ক্রন কাজগুলো শুরু ইস্যু সমাধান করা হয়েছে! আমার এখনও আরও একটি বিশ্বব্যাপী সমাধান প্রয়োজন (ক্রোনটির জন্য পসিক্স অক্ষম করা?), তবে সঠিক দিকের একটি পদক্ষেপ ...
রেমি

উত্তর:


0

আপনার কমান্ড লাইন / ক্রোনজবব পরিবর্তন সম্পর্কে কীভাবে:

bash -c "PYTHONPATH=/var/networkip/nlite/proc_mon/lib:$PYTHONPATH python /var/networkip/nlite/proc_mon/proc_mon.py > /dev/null 2>&1"

আরএইচ 5.2 এবং আরএইচ 6.8 এর মধ্যে (সেন্টোসের কিছু না বলার জন্য) অনেকগুলি পার্থক্য রয়েছে (যা আমি আশা করি আমার কাছে এখনই কোনও উত্স ছিল) আমি ক্রোন ডেমনে পরিবর্তিত বলে মনে করি (ক্রোন থেকে ক্রোনিতে পরিণত হয়েছিল) , আমি মনে করি).

নির্বিশেষে, এমন আরও কিছু জিনিস রয়েছে যা আপনি যাচাই করতে চাইতে পারেন:

  • SeLinux ছবির অংশ কিনা তা পরীক্ষা করুন (/var/log/audit/audit.log এ আপনার পথের জন্য গ্রেপ, যদি আপনার কাছে এই জাতীয় কোনও ফাইল থাকে তবে AVC দেখুন)
  • ক্রোন থেকে বাশ স্ক্রিপ্ট কল করুন এবং সেই স্ক্রিপ্টে আপনার পরিবেশ সেট আপ করুন (দীর্ঘ ক্রোন ক্লায়ার চেয়ে বরং) - আপনি এটির জন্য /etc/cron.d ব্যবহার করতে পারেন।
  • একটি পরিষ্কার env সঙ্গে আপনার স্ক্রিপ্ট চালানোর চেষ্টা করুন: env -i PYTHONPATH=/var/networkip/nlite/proc_mon/lib:$PYTHONPATH python /var/networkip/nlite/proc_mon/proc_mon.py > /dev/null 2>&1

আপনি বলছেন এটি 'সমস্ত ক্রোন জব'-এর জন্য ঘটছে, তাই আমি প্রথমে সেলিনাক্স পরীক্ষা করে দেখব। এটি সক্ষম / প্রয়োগকারীকে ছেড়ে দিন, তবে audit2allowআপনার নির্দিষ্ট সমস্যাগুলি ঠিক করার মতো কিছু ব্যবহার করুন ।

আউটপুট / ডায়াল / নালকে রিডাইরেক্ট অপসারণ করার উপযুক্ত হতে পারে যাতে আপনি দেখতে পাচ্ছেন আসল সমস্যাটি কী হতে পারে।


আমি আউটপুটটিকে একটি লগ ফাইলে পরিচালিত করেছিলাম - আমি যা পোস্ট করেছি তা মূল ক্রোন ron আসল সমস্যাটি অবশ্যই পরিবেশের পরিবর্তনশীল। আমি প্রুকের মধ্যে প্রিন্টগুলি যুক্ত করেছি যে লগ AT PATH এবং Y পাইথনপথ এবং প্রুকটি কমান্ড লাইনের মাধ্যমে ম্যানুয়ালি সঞ্চালিত হওয়ার সময় তারা যা হয় তার থেকে পৃথক হয়।
Remy

বোঝা - জিনিসটি হ'ল, এটির মতো মনে হচ্ছে এটি সমস্ত এই একটি নির্দিষ্ট উদাহরণের সাথে সম্পর্কিত, যেখানে আপনি বিষয়টি উল্লেখ করেছেন অন্যান্য সামগ্রীর পুরো গুচ্ছকে প্রভাবিত করে। একটি জিনিস যা আমার কাছে সবেমাত্র ঘটেছে, তা হল: আপনি নিজে কমান্ডটি চালানোর জন্য যে ব্যবহারকারীর ব্যবহার করছেন তেমন ক্র্যাবজব কি একই ব্যবহারকারীর মতো চলছে? নাকি মূল হিসাবে চলছে? এটি হতে পারে এই এক ইস্যুটি ব্যবহারকারী-নির্দিষ্ট
ক্রোনট্যাব

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