কম্পিউটার

CentOS/RHEL Linux-এ Crontab-এর সাথে Cron Jobs কনফিগার করা

সমস্ত লিনাক্স ডিস্ট্রো সহ ইউনিক্স-ভিত্তিক সিস্টেমের জন্য ক্রোন একটি টাস্ক শিডিউলার। ক্রন ডেমন আপনার হোস্টের পটভূমিতে কাজ করে এবং সময়সূচী অনুযায়ী নির্ধারিত কাজগুলি চালায়। এই নিবন্ধে, আমরা দেখাব কিভাবে cron ইনস্টল করতে হয় CentOS বা RHEL Linux চালিত একটি সার্ভারে, cron সিনট্যাক্স শিখুন, এবং crontab এর সাথে ক্রন কাজের সময়সূচী করুন।

সেন্টোস বা আরএইচইএল লিনাক্সে ক্রোন কীভাবে ইনস্টল করবেন?

ডিফল্টরূপে, cron RHEL বা CentOS ইনস্টলেশনের পরপরই উপলব্ধ। কোনো কারণে আপনার কাছে এটি না থাকলে, আপনি yum বা dnf কমান্ড ব্যবহার করে বেস রিপোজিটরি থেকে এটি ইনস্টল করতে পারেন:

# dnf update -y — একটি হোস্টে সমস্ত প্যাকেজ আপডেট করতে
# dnf install crontabs -y — ক্রোন ইনস্টল করতে

CentOS/RHEL Linux-এ Crontab-এর সাথে Cron Jobs কনফিগার করা

ক্রন্ড ডেমন সক্রিয় করুন এবং ইনস্টলেশনের পরে এটি চালান:

# systemctl enable crond.service
# systemctl start crond.service

ক্রনট্যাবের সাথে একটি ক্রন জবস কিভাবে যোগ করবেন?

আপনি ক্রোন এ কাজ যোগ করতে নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন:

# crontab -e

এই কমান্ডটি আপনার ব্যবহারকারীর জন্য একটি ডিফল্ট পাঠ্য সম্পাদকে একটি টাস্ক ফাইল খুলবে (এটি vim আমার ক্ষেত্রে, কিন্তু আপনি এটি পরিবর্তন করতে পারেন যা আপনার জন্য আরও সুবিধাজনক, উদাহরণস্বরূপ, ন্যানো ) কাজ কনফিগার করার এই পদ্ধতি সিনট্যাক্স ত্রুটি প্রতিরোধ করে। ক্রন্টাব ত্রুটিযুক্ত একটি কনফিগার ফাইল সংরক্ষণ করার অনুমতি দেয় না।

এছাড়াও আপনি mc:

-এ ম্যানুয়ালি ক্রোন জবস ফাইল সম্পাদনা করতে পারেন

# mcedit /var/spool/cron/root – ব্যবহারকারীর উপর নির্ভর করে একটি ফাইলের নাম ভিন্ন হতে পারে।

ক্রনে একটি ব্যাশ স্ক্রিপ্ট চালানোর জন্য একটি সাধারণ কাজ যোগ করতে, এই কমান্ডটি লিখুন:

# crontab -e

তারপর স্ক্রিপ্ট ফাইলে টাস্ক শিডিউল এবং পাথ যোগ করুন:

* * * * * /root/test.sh

ফাইলটি সংরক্ষণ করুন (এটি vim এ সম্পাদনার অনুরূপ:Ctrl+O টিপুন একটি ফাইল সংরক্ষণ করতে এবং Ctrl+X প্রস্থান করতে)।

আপনি যদি এটি সঠিকভাবে করে থাকেন তবে আপনার কাজটি ক্রোন এ যোগ করা হবে। ক্রন কাজের তালিকা প্রদর্শন করতে, নিম্নলিখিত কমান্ডটি চালান:

# cat /var/spool/cron/root

* * * * * /root/test.sh

অথবা এই একটি:

# crontab -l

এই স্ক্রিপ্টটি প্রতি মিনিটে ক্রনের মাধ্যমে চলবে।

সর্বনিম্ন সময় 1 মিনিট। ক্রন ডেমন প্রতি মিনিটে একবার কাজের তালিকা স্ক্যান করে। এটি নিম্নলিখিত ফাইল এবং ডিরেক্টরি পরীক্ষা করে:

/etc/crontab
/etc/cron.*/.
/var/spool/cron/

প্রতিটি ক্রোন্টাব সময়সূচী এন্ট্রিতে 5টি ক্ষেত্র থাকে:

minutes hours day_of_a_month months week_day
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

CentOS/RHEL Linux-এ Crontab-এর সাথে Cron Jobs কনফিগার করা

আপনি প্রতিটি ক্ষেত্রের জন্য নিম্নলিখিত বৈধ মান ব্যবহার করতে পারেন:

ক্ষেত্র মান পরিসীমা
মিনিট 0-59
ঘন্টা 0-23
এক মাসের দিন 1-31
মাস 1-12 অথবা jan feb mar apr may jun jul aug sep oct nov dec
সপ্তাহের দিন 0-6 (যেখানে 0 রবিবার) অথবা sun mon tue wed thu fri sat

* অক্ষর মানে সমস্ত অনুমোদিত মান। এখানে একটি নমুনা টাস্ক:

30 00 * * 1 /root/test.sh

টাস্কের স্ক্রিপ্টটি প্রতি সোমবার সকাল 00:30 এ চালানো হবে।

ক্রন ফাইল সিনট্যাক্স সহজ করতে, কিছু বিশেষ অক্ষর ব্যবহার করা হয়:

  • একটি কমা (,) বিভিন্ন সময়ে একই কাজ চালানোর জন্য সময়সূচী মান পৃথক করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি যদি প্রতি ঘন্টার 15 তম এবং 30 তম মিনিটে একটি টাস্ক চালাতে চান তবে আপনি এইভাবে সময়সূচী সেট করতে পারেন:
15 * * * *
30 * * * *

অথবা কমা সহ একটি ছোট সিনট্যাক্স ব্যবহার করুন:

15,30 * * * *
  • একটি স্ল্যাশ (/) একটি টাস্ক পুনরাবৃত্তি করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি প্রতি 2 ঘন্টা একটি টাস্ক চালাতে চান। ব্যবহার করে/আপনি একটি ক্রোন ফাইলের বিষয়বস্তুকে অনেক ছোট করবেন, অন্যথায়, এটি বেশ দীর্ঘ:
* */2 * * *
  • A হাইফেন (-) একটি ক্ষেত্রের মান পরিসীমা নির্দেশ করে। আপনি যদি এক ঘন্টার প্রথম বা শেষ 10 মিনিটের জন্য একটি টাস্ক চালাতে চান তবে একটি হাইফেন ব্যবহার করে পরিসীমা নির্দিষ্ট করুন:
0-10 * * * *
50-60 * * * *

এখানে ক্রন সময়সূচীর আরও কিছু উদাহরণ রয়েছে:

  • সাপ্তাহিক দিনের বেলা 12:00 PM এবং 06:00 PM-এ চালানোর জন্য: 0 12,18 * * 1-5
  • প্রতি ৩০ মিনিটে:*/30 * * * *
  • প্রতি শনিবার:0 0 * * 6
  • প্রতি মঙ্গলবার এবং বৃহস্পতিবার সকাল 02:00 AM:0 2 * * 2,4

এছাড়াও আপনি ক্রনে বিশেষ ভেরিয়েবল ব্যবহার করতে পারেন।

ভেরিয়েবল বর্ণনা সিনট্যাক্স
@reboot বুটে একবার চলে
@yearly

অথবা

@yearly

বছরে একবার 0 0 1 1 *
@monthly মাসে একবার 0 0 1 * *
@weekly সপ্তাহে একবার 0 0 * * 0
@daily প্রতিদিন 0 0 * * *
@hourly প্রতি ঘণ্টায় 0 * * * *
@midnight মধ্যরাতে

এর মানে হল যে প্রতিদিন একটি টাস্ক চালানোর জন্য, আপনি নিম্নলিখিত ক্রোন সিনট্যাক্স ব্যবহার করতে পারেন:

@daily echo "Cron check"

আপনি অন্য ব্যবহারকারীর একটি ক্রন্টাব ফাইল সম্পাদনা করতে পারেন:

# crontab -u username

ইমেলে ক্রোন বিজ্ঞপ্তিগুলি কীভাবে পাঠাবেন?

আপনি যদি ইমেলের মাধ্যমে আপনার ক্রনট্যাব কাজগুলি চালানোর বিষয়ে তথ্য পেতে চান তবে আপনাকে কাজের সাথে ক্রোন ফাইলটি কনফিগার করতে হবে৷

ইমেল পাঠাতে, একটি মেইল ​​এজেন্ট আপনার সার্ভারে ইনস্টল করা আবশ্যক. একটি পরীক্ষা করার জন্য, আমি sendmail ইনস্টল করেছি৷ আমার লিনাক্স হোস্টে:

# dnf install sendmail -y
# service sendmail start

ক্রোন ফাইলে ইমেল পাঠাতে পরামিতিগুলি কনফিগার করি। ফাইলটিতে নিম্নলিখিত লাইন যোগ করুন:

MAILTO="youremail@gmail.com"
SHELL=/bin/bash
HOME=/
* * * * * echo "Cron check"

শেল — একটি ব্যবহারকারী শেল

HOME — ক্রোন ফাইলের একটি পথ

CentOS/RHEL Linux-এ Crontab-এর সাথে Cron Jobs কনফিগার করা

প্রতিবার একটি ক্রোন কাজ শুরু হলে, আপনার মেলবক্সে একটি ইমেল বিজ্ঞপ্তি পাঠানো হবে৷

আপনি একটি লগ ফাইলে একটি ক্রন টাস্ক চালানোর তথ্য সংরক্ষণ করতে পারেন। এটি করতে, >> যোগ করুন ফাইলের শেষে এবং আপনার লগ ফাইলের একটি পাথ লিখুন:

* * * * * echo "Cron check" >> /var/log/admin/journal.log

যদি আপনার ক্রন্টাব ফাইলে অনেকগুলি কাজ থাকে এবং আপনি ইমেলের মাধ্যমে সেগুলির কিছুর ফলাফল পেতে না চান, তাহলে আপনি এই কাজগুলিকে নীরব মোডে চালাতে পারেন:

* * * * * echo "Cron check" >> /dev/null 2>&1

ক্রোন কনফিগারেশন ফাইল এবং লগ

প্রধান ক্রন কনফিগারেশন ফাইল হল /etc/crontab। ক্রোন ফাইল ছাড়াও, আপনি নিম্নলিখিত ডিরেক্টরিগুলি থেকে কাজ চালাতে পারেন:

  • /etc/cron.daily – দিনে একবার স্ক্রিপ্ট শুরু করতে
  • /etc/cron.hourly – …. ঘন্টায় একবার
  • /etc/cron.monthly – …. মাসে একবার
  • /etc/cron.weekly – …. সপ্তাহে একবার

সময়সূচী অনুযায়ী এটি চালানোর জন্য শুধুমাত্র একটি ডিরেক্টরির মধ্যে একটি স্ক্রিপ্ট ফাইল রাখুন।

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

আপনি /etc/crontab-এ চাকরি যোগ করতে পারেন যেমন. সাধারণত, ফাইলটি রুট ব্যবহারকারী দ্বারা বা সিস্টেমের কাজগুলি কনফিগার করতে ব্যবহৃত হয়। ক্রোন কাজের ব্যক্তিগত ব্যবহারকারী ফাইলগুলি /var/sool/cron/-এ সংরক্ষণ করা হয় অথবা /var/cron/tabs/ .

ক্রোন কাজ বা ত্রুটিগুলি ট্র্যাক করতে, আপনি লগ ফাইলটি দেখতে পারেন:/var/log/cron . এই ফাইলটি ডেমন অপারেশনের সমস্ত কাজ এবং ত্রুটি রেকর্ড করে যদি থাকে:

CentOS/RHEL Linux-এ Crontab-এর সাথে Cron Jobs কনফিগার করা


  1. রেড হ্যাট লিনাক্সের জন্য অর্থ প্রদান করতে চান না? পরিবর্তে CentOS চেষ্টা করুন

  2. লিনাক্স মিন্ট 12 এর সাথে লিনাক্সে সেরা উপভোগ করুন

  3. Zeit এর সাথে লিনাক্সে কীভাবে সহজেই ক্রোন কাজ তৈরি করবেন

  4. লিনাক্সে ভ্যাগ্রান্ট দিয়ে শুরু করা