অ্যান্ড্রয়েড

ক্রন্টব দিয়ে ক্রোন কাজের সময় নির্ধারণ করা

ক্রোনা

ক্রোনা

সুচিপত্র:

Anonim

ক্রোন একটি সময়সূচী ডেমন যা নির্দিষ্ট বিরতিতে কার্য সম্পাদন করে। এই কাজগুলিকে ক্রোন জব বলা হয় এবং বেশিরভাগই সিস্টেম রক্ষণাবেক্ষণ বা প্রশাসন স্বয়ংক্রিয়ভাবে ব্যবহৃত হয়।

উদাহরণস্বরূপ, আপনি পুনরাবৃত্ত কাজগুলি যেমন ডাটাবেস বা ডেটা ব্যাকআপ করা, সর্বশেষতম সুরক্ষা প্যাচগুলি সহ সিস্টেমটি আপডেট করা, ডিস্কের জায়গার ব্যবহার পরীক্ষা করা, ইমেল প্রেরণ করা ইত্যাদি as কিছু অ্যাপ্লিকেশন, যেমন দ্রুপাল বা ম্যাজেন্টোতে কিছু নির্দিষ্ট কাজ সম্পাদনের জন্য ক্রোন জব প্রয়োজন।

ক্রোন জবগুলি এক মিনিট, ঘন্টা, মাসের দিন, মাস, সপ্তাহের দিন বা এগুলির কোনও সংমিশ্রণ দ্বারা চালানোর জন্য নির্ধারিত হতে পারে।

ক্রন্টব ফাইল কী

ক্রন্টব (ক্রোন টেবিল) একটি পাঠ্য ফাইল যা ক্রোন জবগুলির শিডিয়ুল নির্দিষ্ট করে। ক্রন্টব ফাইল দুটি ধরণের। সিস্টেম-ব্যাপী ক্রন্টব্যাব ফাইল এবং পৃথক ব্যবহারকারী ক্রন্টব ফাইল।

ব্যবহারকারী ক্রন্টব ফাইলগুলি ব্যবহারকারীর নামে সংরক্ষণ করা হয় এবং অপারেটিং সিস্টেমগুলির দ্বারা তাদের অবস্থানের পরিবর্তিত হয়। রেড হ্যাট ভিত্তিক সিস্টেমে যেমন সেন্টোস, ক্রোনটব ফাইলগুলি /var/spool/cron ডিরেক্টরিতে সংরক্ষণ করা হয় যখন ডেবিয়ান এবং উবুন্টু ফাইলগুলি /var/spool/cron/crontabs ডিরেক্টরিতে /var/spool/cron/crontabs

যদিও আপনি ব্যবহারকারী ক্রন্টব্যাট ফাইলগুলি ম্যানুয়ালি সম্পাদনা করতে পারেন, এটি crontab কমান্ড ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।

/etc/crontab এবং /etc/cron.d ডিরেক্টরিতে থাকা ফাইলগুলি /etc/cron.d সিস্টেম-ব্যাপী ক্রন্টব ফাইল যা কেবলমাত্র প্রশাসকগণ সম্পাদনা করতে পারবেন।

বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে আপনি hour/day/week/month /etc/cron.{hourly, daily, weekly, monthly} এর /etc/cron.{hourly, daily, weekly, monthly} স্ক্রিপ্টগুলি রাখতে /etc/cron.{hourly, daily, weekly, monthly} hour/day/week/month , /etc/cron.{hourly, daily, weekly, monthly} , /etc/cron.{hourly, daily, weekly, monthly} ডিরেক্টরি এবং স্ক্রিপ্টগুলি প্রতি hour/day/week/month কার্যকর করা হবে।

ক্রন্টব সিনট্যাক্স এবং অপারেটর

ব্যবহারকারী ক্রন্টব ফাইলের প্রতিটি লাইনে ছয়টি ক্ষেত্র পৃথক করে একটি স্পেস দ্বারা পৃথক করা হয় যার পরে চালানো কমান্ডটি অনুসরণ করা হয়।

* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)

এই প্রথম পাঁচটি ক্ষেত্রে একটি বা একাধিক মান থাকতে পারে, কমা দ্বারা বিচ্ছিন্ন বা একটি হাইফেন দ্বারা পৃথক করা মানের ব্যাপ্তি।

  • * - অস্ট্রিক অপারেটরের অর্থ কোনও মান বা সর্বদা। আওয়ার ফিল্ডে আপনার যদি তারকাচিহ্ন প্রতীক থাকে, তার অর্থ এই টাস্কটি প্রতি ঘন্টা সঞ্চালিত হবে। , -কোমা অপারেটর আপনাকে পুনরাবৃত্তির জন্য মানগুলির তালিকা নির্দিষ্ট করতে দেয়। উদাহরণস্বরূপ, আওয়ার ক্ষেত্রে আপনার যদি 1, 3, 5 তবে টাস্কটি সকাল 1 টা, সকাল 3 টা এবং 5 টা সময় চলবে। - হাইফেন অপারেটর আপনাকে বিভিন্ন মানের মান নির্দিষ্ট করতে দেয় specify সপ্তাহের মাঠে আপনার ক্ষেত্রে যদি 1-5 থাকে তবে টাস্কটি প্রতি সপ্তাহের দিন (সোমবার থেকে শুক্রবার) চলবে। / -স্ল্যাশ অপারেটর আপনাকে মানগুলি নির্দিষ্ট করতে দেয় যা তাদের মধ্যে একটি নির্দিষ্ট ব্যবধানে পুনরাবৃত্তি হবে। উদাহরণস্বরূপ, যদি আপনার আওয়ারের ক্ষেত্রের */4 হয়, তার অর্থ এই ক্রিয়াটি প্রতি চার ঘন্টা পরে সঞ্চালিত হবে। এটি 0, 4, 8, 12, 16, 20 উল্লেখ করার 0, 4, 8, 12, 16, 20 । স্ল্যাশ অপারেটরের আগে তারকাচিহ্নের পরিবর্তে, আপনি বিভিন্ন মানের মানও ব্যবহার করতে পারেন, 1-30/10 অর্থ 1, 11, 21 এর সমান।

সিস্টেম-ব্যাপী ক্রন্টব ফাইলগুলি

সিস্টেম-প্রশস্ত crontab ফাইলগুলির সিনট্যাক্সটি ব্যবহারকারী ক্রন্টাবগুলির চেয়ে কিছুটা আলাদা। এটিতে একটি অতিরিক্ত বাধ্যতামূলক ব্যবহারকারী ক্ষেত্র রয়েছে যা নির্দিষ্ট করে কোন ব্যবহারকারী ক্রোন কাজ চালাবে।

* * * * * command(s) * * * * * command(s)

পূর্বনির্ধারিত ম্যাক্রোস

সাধারণ ব্যবধানগুলি নির্দিষ্ট করার জন্য বেশ কয়েকটি বিশেষ ক্রোন শিডিউল ম্যাক্রোগুলি ব্যবহৃত হয়। আপনি পাঁচটি-কলামের তারিখের নির্দিষ্টকরণের জায়গায় এই শর্টকাটগুলি ব্যবহার করতে পারেন।

  • @yearly (বা @annually ) - 1 জানুয়ারীর মধ্যরাতে (সকাল 12:00) এ বছরে একবার নির্দিষ্ট কাজটি চালান। 0 0 1 1 * সমান। @monthly - মাসের প্রথম দিন মাসে মধ্যরাতে নির্দিষ্ট কাজটি একবার চালান। 0 0 1 * * সমান। @weekly - রবিবার মধ্যরাতে সপ্তাহে একবার নির্দিষ্ট কাজটি চালান। 0 0 * * 0 সমান। @daily - মধ্যরাতে দিনে একবার নির্দিষ্ট কাজটি চালান। 0 0 * * * সমান। @hourly - @hourly শুরুতে নির্দিষ্ট কাজটি একবারে চালান। 0 * * * * সমান। @reboot - সিস্টেম স্টার্টআপে (বুট-টাইম) নির্দিষ্ট কাজটি চালান।

লিনাক্স ক্রন্টব কমান্ড

Crontab কমান্ড আপনাকে সম্পাদনার জন্য একটি ক্রন্টব ফাইল ইনস্টল বা খুলতে দেয়।

আপনি নিম্নলিখিত বিকল্পগুলি ব্যবহার করে ক্রোন জবগুলি দেখতে, যুক্ত করতে, অপসারণ করতে বা সংশোধন করতে crontab কমান্ডটি ব্যবহার করতে পারেন:

  • crontab -e - crontab ফাইল সম্পাদনা করুন, বা এটি ইতিমধ্যে বিদ্যমান না থাকলে একটি তৈরি করুন। crontab -l - ক্রন্টব ফাইলের সামগ্রী প্রদর্শন করুন। crontab -r - আপনার বর্তমান ক্রন্টব ফাইলটি সরান। crontab -i - অপসারণের পূর্বে আপনার বর্তমান ক্রন্টব ফাইলটি একটি প্রম্পটের সাহায্যে সরান। crontab -u - অন্যান্য ব্যবহার ক্রন্টব ফাইল সম্পাদনা করুন। সিস্টেম প্রশাসকের অধিকার প্রয়োজন।

ক্রোনট্যাব কমান্ডটি VISUAL বা EDITOR এনভায়রনমেন্ট ভেরিয়েবল দ্বারা নির্দিষ্ট করা সম্পাদক ব্যবহার করে ক্রন্টব ফাইলটি খুলবে।

ক্রন্টব ভেরিয়েবলস

ক্রোন ডেমন স্বয়ংক্রিয়ভাবে বেশ কয়েকটি পরিবেশের ভেরিয়েবল সেট করে।

  • ডিফল্ট পাথটি PATH=/usr/bin:/bin । আপনি যে কমান্ডটি কল করছেন তা ক্রোন নির্দিষ্ট পথে উপস্থিত থাকলে আপনি কমান্ডের পরম পাথটি ব্যবহার করতে পারেন বা ক্রোন $PATH ভেরিয়েবল পরিবর্তন করতে পারেন। আপনি স্পষ্টতই সংযোজন করতে পারবেন না :$PATH a পথ যেমন আপনি একটি নিয়মিত স্ক্রিপ্টের সাথে করেন default ডিফল্ট শেলটি /bin/sh তে সেট করা থাকে। আপনি SHELL ভেরিয়েবল পরিবর্তন করে একটি আলাদা শেল সেট করতে পারেন SHELL ক্রোন ব্যবহারকারীর হোম ডিরেক্টরি থেকে কমান্ডটি আহ্বান করে। HOME ভেরিয়েবলটি ক্রন্টবায় সেটিংস দ্বারা ওভাররাইড করা যায় email ইমেল বিজ্ঞপ্তিটি ক্রন্টবের মালিককে প্রেরণ করা হয়। ডিফল্ট আচরণটি ওভাররাইট করতে, আপনি ইমেল বিজ্ঞপ্তিগুলি পেতে চান এমন সমস্ত ইমেল ঠিকানাগুলির একটি তালিকা (কমা দ্বারা বিচ্ছিন্ন) সহ মাইল পরিবেশের পরিবর্তনশীলটি ব্যবহার করতে পারেন। যদি MAILTO সংজ্ঞায়িত করা হয় তবে খালি ( MAILTO="" ) হয় তবে কোনও মেল প্রেরণ করা হয় না।

ক্রন্টব সীমাবদ্ধতা

সিস্টেম প্রশাসকরা /etc/cron.deny এবং /etc/cron.allow ফাইলগুলি ব্যবহার করে /etc/cron.deny কমান্ডটিতে কোন ব্যবহারকারীদের অ্যাক্সেস রয়েছে তা নিয়ন্ত্রণ করতে পারে। ফাইলগুলির মধ্যে ব্যবহারকারীর নামের তালিকা রয়েছে, প্রতি লাইনে একটি ব্যবহারকারীর নাম।

ডিফল্টরূপে কেবল /etc/cron.deny ফাইল উপস্থিত থাকে এবং খালি থাকে, যার অর্থ হ'ল সমস্ত ব্যবহারকারী crontab কমান্ড ব্যবহার করতে পারে। আপনি যদি কোনও নির্দিষ্ট ব্যবহারকারীর কাছে ক্রোনটব আদেশগুলি অ্যাক্সেস অস্বীকার করতে চান তবে এই ফাইলটিতে ব্যবহারকারীর নামটি যুক্ত করুন।

যদি /etc/cron.allow ফাইল উপস্থিত থাকে তবে কেবলমাত্র এই ফাইলটিতে তালিকাভুক্ত ব্যবহারকারীরা crontab কমান্ডটি ব্যবহার করতে পারবেন।

যদি উভয়ই ফাইল উপস্থিত না থাকে তবে কেবল প্রশাসনিক সুযোগ-সুবিধা প্রাপ্ত ব্যবহারকারীরা crontab কমান্ড ব্যবহার করতে পারবেন।

ক্রোন জবসের উদাহরণ

নীচে কিছু ক্রোন কাজের উদাহরণ দেওয়া আছে যা আপনাকে দেখায় যে কীভাবে বিভিন্ন সময়সীমার মধ্যে কোন কাজের সময় নির্ধারণ করতে হয়।

  • সোমবার থেকে শুক্রবার পর্যন্ত প্রতিদিন 15:00 টায় একটি কমান্ড চালান:

    0 15 * * 1-5 command

    প্রতি 5 মিনিটে একটি স্ক্রিপ্ট চালান এবং স্ট্যান্ডার্ড আউটপুটটি dev null পুনঃনির্দেশিত করেন, কেবলমাত্র মানক ত্রুটি নির্দিষ্ট ই-মেইল ঠিকানায় পাঠানো হবে:

    [email protected] */5 * * * * /path/to/script.sh > /dev/null

    প্রতি সোমবার বিকেল তিনটায় দুটি কমান্ড চালান (কমান্ডগুলির মধ্যে অপারেটর ব্যবহার করুন && ):

    0 15 * * Mon command1 && command2

    প্রতি 2 মিনিটে পিএইচপি স্ক্রিপ্ট চালান এবং একটি ফাইলে আউটপুট লিখুন:

    */2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log

    সকাল ৮ টা থেকে বিকাল ৪ টা অবধি প্রতিদিন, প্রতি ঘন্টা, ঘন্টায় একটি স্ক্রিপ্ট চালান:

    00 08-16 * * * /path/to/script.sh

    প্রতি মাসের প্রথম সোমবার সকাল সাতটায় স্ক্রিপ্ট চালান

    0 7 1-7 * 1 /path/to/script.sh

    প্রতি মাসের 1 ও 15 তম সন্ধ্যা 9: 15 এ স্ক্রিপ্টটি চালান:

    15 9 1, 15 * * /path/to/script.sh

    কাস্টম HOME , PATH , SHELL এবং MAILTO ভেরিয়েবল সেট করুন এবং প্রতি মিনিটে একটি কমান্ড চালান।

    HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command

উপসংহার

আপনি নির্দিষ্ট তারিখ এবং সময়ে ক্রোন জব তৈরি করতে এবং শিডিয়ুল করার কাজগুলি শিখবেন learned

আপনার কোনও প্রশ্ন থাকলে নির্দ্বিধায় কোনও মন্তব্য করুন leave

ক্রোন ক্রন্টব টার্মিনাল