আমি কীভাবে একটি নতুন ক্রোন স্ক্রিপ্ট পরীক্ষা করতে পারি?


14

আমি কয়েকটি ভিন্ন লিনাক্স ডিস্ট্রোজে চলছি (ফেডোরা ১১, সেন্টোস ৫ এবং সুএসই ১০.২) এবং প্রায়শই এমন একটি সমস্যার মধ্যে চলে যাই যেখানে একটি নতুন স্ক্রিপ্ট যা আমি ক্রোন জব হিসাবে চালাতে চাই তা ঠিক কাজ করে যখন কমান্ড লাইন থেকে ডাইরেক্ট বলা হয়, PATH বা অন্যান্য প্রয়োজনীয় পরিবেশের ভেরিয়েবলের সামান্য পরিবর্তনের কারণে ক্রোন থেকে ডাকা হলেও ব্যর্থ হয়।

আমি কোনও পৃথক স্ক্রিপ্ট চালানোর জন্য কি এটির কোনও উপায় পরীক্ষা করে দেখতে পারি যে এটি ক্রোন থেকে চালানো হচ্ছে, পুরো ক্রোনট্যাব না চালিয়েই বা পুরো ক্রোন.ডাইলি / .হ্যুরলি ইত্যাদি ডিরেক্টরি চালানোর জন্য রান-পার্টস ব্যবহার না করে? আমি অনুমান করি যে আমি কয়েক মিনিটের মধ্যে স্ক্র্যাপটি চালাতে সাময়িকভাবে আমার ক্রোনট্যাব সম্পাদনা করতে পারলাম, তবে আমি বরং আরও একক সমাধান করব যাতে ক্রোনট্যাব গোলযোগের ঝুঁকি না হয়।

উত্তর:


9

থেকে Google অনুসন্ধান উপরpath in crontab

root@pingu # cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

আপনি মূলত PATH সেট করতে চান এবং তারপরে তারতম্যগুলি নিয়ে চিন্তা করতে হবে না। এছাড়াও, দ্রুত পরীক্ষাটি হ'ল আপনার স্ক্রিপ্টটি একই পরিবেশের ভেরিয়েবলগুলি ব্যবহার করে আপনার সমস্ত বাক্সে এসএসএইচের মাধ্যমে চালানো।


ধন্যবাদ, আমি টানছি না যে কোনও ক্রন্টব ঠিক একটি স্ক্রিপ্টের মতো যাতে আপনি ক্রন্টবের মধ্যে পরিবেশের পরিবর্তনগুলি ঘোষণা করতে পারেন।
গ্যারেথ_উবলস

7

যদি আমি স্বতন্ত্রভাবে নির্ধারিত ক্রোন জব চালাচ্ছি (ক্রন্টাবের একটি পৃথক লাইন) আমি এটি পরীক্ষা করে নিচ্ছি প্রতি মিনিট বা প্রতি মিনিটে এটি নির্ধারণ করব। এটি একবার পরীক্ষিত হয়ে গেলে, আমি ক্রন্টব লাইনটি সম্পাদনা করব যাতে এটি আমার ইচ্ছে মতো ফ্রিকোয়েন্সিতে চলে।

পার্শ্ব-নোট হিসাবে, যদি আমি পরীক্ষা করতে চাই যে ক্রোন নিজেই সঠিকভাবে কাজ করছে এবং ফলাফলগুলি সঠিক ঠিকানায় ইমেল করা হচ্ছে (খুব গুরুত্বপূর্ণ) আমি নীচের লাইনটি আমার / ইত্যাদি / ক্রন্টবে যুক্ত করব:

 * * * * * root ls /doesnotexistfoobar

প্রতি মিনিটে চলে এবং lsকোনও অস্তিত্ব নেই এমন কোনও ডিরেক্টরিতে চেষ্টা করার চেষ্টা করে। প্রতি মিনিটে একটি ব্যর্থতার বার্তা ইমেল করা উচিত। আমি যখন কাজটি করেছিলাম তখন আমি মন্তব্য করি।

আপনার প্রশ্নে ফিরে যান: আপনি সম্ভবত চলমান ক্রোন জবটি প্রায়শই চালনার জন্য পরিবর্তন করতে চান না, উভয়ই এটি আবার পরিবর্তন করতে ভুলে যাওয়ার সম্ভাবনা রয়েছে এবং আপনার ক্রোন.আরলি, ক্রোন.ডেইলি, বা ক্রোন.ও প্রায়শই চালানোর কারণ রয়েছে both আপনি সেখানে কী পেয়েছেন তার উপর নির্ভর করে পার্শ্ব-প্রতিক্রিয়া থাকতে পারে। ক্রোন থেকে ফোন করার সময় আপনি যে পরিবেশটি চালু হতে চলেছে একই পরিবেশে এটি চালানোর জন্য, আমি উপরের আমার "এলএস" কৌশলটি পরিবর্তন করার পরামর্শ দিচ্ছি:

সরাসরি স্ক্রিপ্টটি চালানোর জন্য আপনার ক্রোনটবে একটি লাইন যুক্ত করুন:

 * * * * * root /etc/cron.hourly/customscript

আপনি এটি পরীক্ষা করার জন্য যত তাড়াতাড়ি আপনি এটি চালাতে পারেন।


ধন্যবাদ - আমি যদি এর জন্যও সঠিক উত্তর হিসাবে ভোট দিতে পারি, তবে আমি করতাম!
গ্যারেথ_উবলস

0

আমি আরও সরাসরি সমাধান সম্পর্কে জানিনা, তবে আপনি নিজের স্ক্রিপ্টের প্রাইভেস সহ একটি ব্যবহারকারী (বলুন, ক্রোনটেস্ট) তৈরি করতে পারেন এবং সম্পাদনা করে স্ক্রিপ্ট (গুলি) পরীক্ষা করার জন্য 'ক্রনটেস্ট' ব্যবহারকারীর জন্য ব্যবহারকারী-নির্দিষ্ট ক্রনট্যাব ব্যবহার করতে পারেন স্ক্রিপ্টটি পরবর্তী কয়েক মিনিটের মধ্যে চালানো হবে।

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