ক্রন জবস: সম্পূর্ণ শিক্ষানবিস টিউটোরিয়াল

Cron Jobs Complete Beginners Tutorial



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

এই টিউটোরিয়ালে, আমরা আপনাকে ক্রন দিয়ে একটি কাজের সময় নির্ধারণের জন্য যা কিছু বুঝতে হবে তার প্রাথমিক পরিচয় প্রদান করব। এর মধ্যে রয়েছে ক্রনের মৌলিক বাক্য গঠন, ক্রোনটাব ফাইল সম্পাদনা, কিছু উদাহরণ সহ ক্রনের সাথে একটি কাজের সময়সূচী, ক্রোন কাজ দেখুন ইত্যাদি।







ক্রন কাজের মূল বিষয়

আসুন একটি ক্রন কাজের কিছু মৌলিক বিষয় বুঝতে পারি।



ক্রন্ড কি?

Crond হল লিনাক্স সিস্টেমে একটি ডেমন যা ব্যাকগ্রাউন্ডে চলে এবং প্রতি মিনিটে চেক করে যে সেই সময়ে কোন কাজ নির্ধারিত আছে কিনা। যদি থাকে, এটি সেই কাজটি সম্পাদন করে, অন্যথায় এটি নিষ্ক্রিয় থাকে।



ক্রন জব সিনট্যাক্স

ক্রন কাজের জন্য বাক্য গঠন নিম্নরূপ:





* * * * *কমান্ড/লিপি

বাম দিক থেকে:

  • প্রথম * মিনিটের সাথে মিলে যায় (0-59)
  • দ্বিতীয় * ঘন্টার সাথে মিলে যায় (0-23)
  • তৃতীয় * মাসের দিন (1-31)
  • চতুর্থ * বছরের মাসের সাথে মিলে যায় (1-12)
  • পঞ্চম * সপ্তাহের দিনের সাথে সামঞ্জস্যপূর্ণ (0-6, রবিবার থেকে শনিবার)

একটি ক্ষেত্রের একাধিক মান নির্দিষ্ট করতে, নিম্নলিখিত অপারেটর চিহ্নগুলি ব্যবহার করুন:



  1. তারকাচিহ্ন (*): একটি ক্ষেত্রের জন্য সমস্ত সম্ভাব্য মান নির্দিষ্ট করতে
  2. ড্যাশ (-): প্রতি গুলি মানগুলির একটি পরিসীমা নির্ধারণ করুন
  3. কমা (,): মানগুলির একটি তালিকা নির্দিষ্ট করতে
  4. বিভাজক (/): একটি ধাপের মান নির্দিষ্ট করতে

Crontab ফাইল সম্পাদনা

Crontab একটি ফাইল যা একটি নির্দিষ্ট সিনট্যাক্সে নির্ধারিত কাজগুলি অন্তর্ভুক্ত করে। Crontab ফাইল দুই ধরনের আছে; একটি সিস্টেম-নির্দিষ্ট ক্রন কাজের জন্য এবং অন্যটি ব্যবহারকারী-নির্দিষ্ট ক্রন কাজের জন্য।

সিস্টেম ক্রোন জব

সিস্টেম-ওয়াইড ক্রোন জবস এ অবস্থিত /etc/crontab ফাইল এবং /etc/cron.d ডিরেক্টরি, এবং তারা মাধ্যমে চালানো হয় /etc/cron.hourly , /etc/cron.daily , /etc/cron.weekly এবং /etc/cron.monthly। শুধুমাত্র একটি সিস্টেম অ্যাডমিনিস্ট্রেটর এই ফাইলগুলি অ্যাক্সেস করতে পারেন।

একটি সিস্টেম অ্যাডমিনিস্ট্রেটর নিম্নলিখিত কমান্ড ব্যবহার করে একটি ক্রন কাজ সংজ্ঞায়িত করতে পারেন:

$ন্যানো /ইত্যাদি/crontab

এখানে চাকরির সিনট্যাক্স /etc/crontab ফাইল:

# মিনিট ঘন্টা মাসিক মাসের দিন সপ্তাহের ব্যবহারকারীর নাম কমান্ড
* * * * *ব্যবহারকারী 1ifconfig

ব্যবহারকারী-নির্দিষ্ট ক্রন কাজ

ব্যবহারকারী-নির্দিষ্ট ক্রন কাজগুলি / এ অবস্থিত var / spool / cron / crontabs ডিরেক্টরি। যদিও আপনি এই কাজগুলি ম্যানুয়ালি সম্পাদনা করতে পারেন, তবে crontab -e কমান্ড ব্যবহার করে এই কাজগুলি সম্পাদনা করার সুপারিশ করা হয়।

একটি স্ট্যান্ডার্ড ব্যবহারকারী নিম্নোক্ত কমান্ড ব্যবহার করে একটি ক্রন কাজ সংজ্ঞায়িত করতে পারেন:

$crontab-এবং

উদাহরণস্বরূপ, যদি আপনি একটি পরীক্ষা ব্যবহারকারী হিসাবে লগ ইন করেন, তাহলে crontab -e কমান্ডটি চালানোর ফলে পরীক্ষা ব্যবহারকারীর জন্য crontab ফাইলটি সম্পাদনা করা হবে। একইভাবে, যদি আপনি রুট ব্যবহারকারী হিসেবে লগ ইন করেন, তাহলে crontab -e কমান্ডটি রুট ব্যবহারকারীর জন্য crontab ফাইলটি সম্পাদনা করবে।

অন্য কোন ব্যবহারকারীর জন্য ক্রোনটাব ফাইল সম্পাদনা করতে টার্মিনালে নিচের কমান্ডটি ইস্যু করুন:

$sudocrontab-উ <ব্যবহারকারীর নাম> -এবং

উদাহরণস্বরূপ, যদি আপনি একটি test1 ব্যবহারকারী হিসাবে লগ ইন করেন এবং test2 ব্যবহারকারীর জন্য ক্রন্টাব ফাইল সম্পাদনা করতে চান, তাহলে কমান্ডটি হবে:

$sudocrontab-উপরীক্ষা 2-এবং

এখানে ক্রোন কাজের সিনট্যাক্স যা ক্রোনটাব ফাইলে যোগ করা যেতে পারে:

# m h dayofmonth month dayofweek কমান্ড
* * * * * ifconfig

আপনি ব্যবহারকারী-নির্দিষ্ট চাকরিতে দেখতে পারেন যে কোনও ব্যবহারকারীর নাম দায়ের করা হয়নি।

Crontab কমান্ড

ক্রনট্যাব কমান্ডটি ক্রোন কাজগুলি সম্পাদনা, তালিকা এবং অপসারণের জন্য ব্যবহৃত হয়:

  • crontab -e বর্তমান ব্যবহারকারীর ক্রন্টাব ফাইল সম্পাদনা করতে
  • crontab -l Crontab ফাইলের বিষয়বস্তু প্রদর্শন করতে
  • crontab -u [ব্যবহারকারীর নাম] অন্য কোন ব্যবহারকারীর ক্রন্টাব ফাইল সম্পাদনা করতে
  • crontab -r বর্তমান ব্যবহারকারীর ক্রন্টাব ফাইলটি সরিয়ে ফেলার জন্য
  • crontab -i বর্তমান ব্যবহারকারীর ক্রন্টাব ফাইলটি সরানোর আগে একটি প্রম্পট প্রদর্শন করতে

ক্রনের সাথে একটি কাজের সময় নির্ধারণ

ক্রনের সাথে, আপনি একটি নির্দিষ্ট সময়, তারিখ এবং মিনিটের মধ্যে একটি সর্বনিম্ন ইউনিটের সাথে একটি কাজ চালাতে পারেন, অর্থাৎ, আপনি প্রতি মিনিটে একটি কাজ চালাতে পারেন।

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

উদাহরণ:

ক্রোনটাব ফাইলের নিচের লাইনটি সোমবার থেকে শনিবার পর্যন্ত সপ্তাহের প্রতি সপ্তাহে প্রতি 30 তম মিনিটে 5 মিনিটে কমান্ড/স্ক্রিপ্ট চালানোর জন্য ক্রোন কাজ নির্ধারণ করবে।

* /30 5 * * -6কমান্ড/লিপি

মিনিট

এই ক্ষেত্রে, আমরা মিনিট নির্দিষ্ট করি যখন আমরা কমান্ডটি কার্যকর করতে চাই। এটি 0 থেকে 59 পর্যন্ত নির্দিষ্ট করা আছে। এই ক্ষেত্রের * মানে প্রতি মিনিটে কাজ চালানো। উপরের ক্রোনটাব লাইনে, */30 ক্রন কাজকে প্রতি 30 মিনিটে নির্দিষ্ট কমান্ড/স্ক্রিপ্ট চালাতে বলে।

ঘন্টার

এই ক্ষেত্রটিতে, আমরা সেই সময়গুলি নির্দিষ্ট করি যখন আমরা কমান্ডটি কার্যকর করতে চাই। এটি 0 থেকে 23 পর্যন্ত নির্দিষ্ট করা আছে। এই ক্ষেত্রের * মানে প্রতি ঘন্টায় কাজ চালানো। উপরের ক্রোনটাব লাইনে, মান 5 ক্রোন কাজকে প্রতি পাঁচ ঘন্টা নির্দিষ্ট কমান্ড/স্ক্রিপ্ট চালানোর জন্য বলে।

মাসের দিন

এই ক্ষেত্রে, আমরা মাসের নির্দিষ্ট দিনগুলি নির্দিষ্ট করি যখন আমরা কমান্ডটি কার্যকর করতে চাই। এটি 1 থেকে 31 পর্যন্ত নির্দিষ্ট করা আছে। এই ক্ষেত্রের * মানে প্রতিদিন। উপরের ক্রোনট্যাব লাইনে, * ক্রোন কাজকে প্রতিদিন নির্দিষ্ট কমান্ড/স্ক্রিপ্ট চালাতে বলে।

বছরের সেরা মাস

এই ক্ষেত্রে, আমরা নির্দিষ্ট মাসগুলি নির্দিষ্ট করি যখন আমরা কমান্ডটি কার্যকর করতে চাই। এটি 1 থেকে 12 পর্যন্ত নির্দিষ্ট করা আছে। এই ক্ষেত্রে * মানে প্রতি মাসে। উপরের ক্রন্টাব লাইনে, * প্রতি মাসে নির্দিষ্ট কমান্ড/স্ক্রিপ্ট চালানোর জন্য ক্রন কাজকে বলে।

সপ্তাহের দিন

এই ক্ষেত্রে, আমরা সপ্তাহের নির্দিষ্ট দিনগুলি নির্দিষ্ট করি যখন আমরা কমান্ডটি কার্যকর করতে চাই। এটি রবিবার থেকে শনিবার পর্যন্ত 0 থেকে 6 পর্যন্ত নির্দিষ্ট করা হয়েছে (রবিবারের জন্য 0 এবং শনিবারের জন্য 6)। এই ক্ষেত্রের * মানে সপ্তাহে প্রতিদিন। উপরের ক্রোনট্যাব লাইনে, * ক্রোন কাজকে সপ্তাহে প্রতিদিন নির্দিষ্ট কমান্ড/স্ক্রিপ্ট চালাতে বলে।

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

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

প্রতি 15 মিনিটে একটি ক্রন কাজ চালান

প্রতি 15 মিনিটে চালানোর জন্য একটি ক্রন কাজ নির্ধারণ করার জন্য, ক্রোনটাব ফাইলে নিচের লাইনটি যুক্ত করুন:

* /পনের * * * *কমান্ড/লিপি

প্রতিদিন ভোর ৫ টায় একটি ক্রনের কাজ চালান

প্রতিদিন ভোর ৫ টায় চালানোর জন্য একটি ক্রন কাজের সময়সূচী করতে, ক্রোনটাব ফাইলে নিচের লাইনটি যুক্ত করুন:

0 5 * * *কমান্ড/লিপি

প্রতিদিন বিকাল ৫ টায় একটি ক্রোন জব চালান

প্রতিদিন বিকেল ৫ টায় একটি ক্রন কাজ চালানোর জন্য, ক্রোনটাব ফাইলে নিচের লাইনটি যুক্ত করুন:

0 17 * * *কমান্ড/লিপি

প্রতি মাসের প্রথম দিন সকাল at টায় একটি ক্রন কাজ চালান

প্রতি মাসের প্রথম দিন সকাল at টায় একটি ক্রন কাজের সময় নির্ধারণ করার জন্য, ক্রোনটাব ফাইলে নিচের লাইনটি যুক্ত করুন:

0 9 * *কমান্ড/লিপি

প্রতি 15 মার্চ প্রতি ঘন্টায় একটি ক্রন কাজ চালান

প্রতি 15 মার্চ প্রতি ঘন্টায় একটি ক্রন কাজের সময়সূচী করতে, ক্রোনটাব ফাইলে নিচের লাইনটি যুক্ত করুন:

0 * পনের 3 *কমান্ড/লিপি

প্রতি 5 ঘন্টা একটি ক্রোন কাজ চালান

প্রতি 5 ঘন্টা একটি ক্রন কাজের সময়সূচী করতে, ক্রোনটাব ফাইলে নীচের লাইনটি যুক্ত করুন:

0 * /5 * * *কমান্ড/লিপি

প্রতি 15 মিনিটে একটি ক্রন কাজ চালান

প্রতি 15 মিনিটে চালানোর জন্য একটি ক্রন কাজ নির্ধারণ করার জন্য, ক্রোনটাব ফাইলে নিচের লাইনটি যুক্ত করুন:

* /পনের * * * *

স্ট্রিং ব্যবহার করে

চাকরির সংজ্ঞা দিতে নিম্নলিখিত স্ট্রিংগুলিও ব্যবহার করা যেতে পারে:

  1. - প্রতি ঘন্টা: প্রতি ঘন্টায় একবার একটি কাজ সম্পাদন করতে, যেমন, 0 * * * *
  2. id মধ্যরাত: প্রতিদিন একবার কাজ সম্পাদন করা, যেমন, 0 0 * * *
  3. - প্রতিদিন: মধ্যরাতের মতো
  4. ek সাপ্তাহিক: প্রতি সপ্তাহে একবার একটি কাজ সম্পাদন করতে, যেমন, 0 0 * * 0
  5. - মাসিক: প্রতি মাসে একবার একটি কাজ সম্পাদন করতে, যেমন, 0 0 1 * *
  6. - বার্ষিক: প্রতি বছর একবার একটি কাজ সম্পাদন করার জন্য, যেমন, 0 0 1 1 *
  7. - প্রতি বছর: বার্ষিক হিসাবে একই
  8. b রিবুট: প্রতিটি প্রারম্ভে একবার কাজ সম্পাদন করা

উদাহরণস্বরূপ, প্রতি সপ্তাহে একটি স্ক্রিপ্ট বা কমান্ড চালানোর জন্য, ক্রন্টাব ফাইলে এন্ট্রি হবে:

সাপ্তাহিক আদেশ/লিপি

পূর্বনির্ধারিত ক্রন ডিরেক্টরি

লিনাক্সে কিছু পূর্বনির্ধারিত ক্রোন ডিরেক্টরি রয়েছে যেখানে সঞ্চিত স্ক্রিপ্টগুলি স্বয়ংক্রিয়ভাবে কার্যকর হয়। যদি আমরা এই ডিরেক্টরিগুলির অধীনে কোন স্ক্রিপ্ট রাখি, এটি স্বয়ংক্রিয়ভাবে কনফিগার করা সময়ে কার্যকর করা হবে।

  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

উদাহরণস্বরূপ, প্রতি মাসে একবার একটি স্ক্রিপ্ট চালানোর জন্য, আপনাকে এটি /etc/cron.monthly এ স্থাপন করতে হবে।

ক্রন জব দেখুন

বর্তমান ব্যবহারকারীর চাকরি দেখুন

বর্তমান ব্যবহারকারীর জন্য সমস্ত নির্ধারিত ক্রন কাজ দেখতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

$crontab-দ্য

রুট ব্যবহারকারীদের জন্য কাজ দেখুন

রুট ব্যবহারকারীর সমস্ত নির্ধারিত কাজ দেখতে, টার্মিনালে নিম্নলিখিত কমান্ডটি জারি করুন:

$বিড়াল /ইত্যাদি/crontab

আপনাকে রুট ব্যবহারকারী হিসাবে লগইন করতে হবে অথবা sudo হিসাবে কমান্ডটি চালাতে হবে।

অন্যান্য ব্যবহারকারীদের জন্য কাজ দেখুন

একটি নির্দিষ্ট ব্যবহারকারীর সমস্ত নির্ধারিত কাজগুলি দেখতে, প্রকৃত ব্যবহারকারীর নাম দিয়ে প্রতিস্থাপন করে টার্মিনালে নিম্নলিখিত কমান্ডটি জারি করুন:

$sudocrontab-উ <ব্যবহারকারীর নাম> -দ্য

এই কমান্ডটি চালানোর জন্য, আপনার সুডো বিশেষাধিকার প্রয়োজন হবে।

প্রতি ঘন্টায় ক্রন কাজ দেখুন

প্রতি ঘণ্টা চালানোর জন্য কনফিগার করা সমস্ত ক্রন কাজগুলি দেখতে, টার্মিনালে নিম্নলিখিত কমান্ডটি জারি করুন:

$ls -দ্য /ইত্যাদি/প্রতি ঘণ্টায়

দৈনিক ক্রন কাজ দেখুন

প্রতিদিন চালানোর জন্য কনফিগার করা সমস্ত ক্রন কাজগুলি দেখতে, টার্মিনালে নিম্নলিখিত কমান্ডটি জারি করুন:

$ls -দ্য /ইত্যাদি/cron.daily/

সাপ্তাহিক ক্রন কাজ দেখুন

সাপ্তাহিক চালানোর জন্য কনফিগার করা সমস্ত ক্রন কাজগুলি দেখতে, টার্মিনালে নিম্নলিখিত কমান্ডটি জারি করুন:

$ls -দ্য /ইত্যাদি/cron. সাপ্তাহিক/

মাসিক ক্রন কাজ দেখুন

মাসিক চালানোর জন্য কনফিগার করা সমস্ত ক্রন কাজগুলি দেখতে, টার্মিনালে নিম্নলিখিত কমান্ডটি জারি করুন:

$ls -দ্য /ইত্যাদি/মাসিক/

সমস্ত ক্রন জব ব্যাকআপ করুন

সমস্ত ক্রন কাজের ব্যাকআপ একটি ফাইলে রাখার সুপারিশ করা হয় যাতে মুছে ফেলার ক্ষেত্রে আপনি পুনরুদ্ধার করতে পারেন। সমস্ত বর্তমান কাজের ব্যাকআপ নিতে, পুনireনির্দেশ অপারেটর ব্যবহার করে crontab -l এর আউটপুট একটি ফাইলে পুনirectনির্দেশিত করুন।

$crontab-দ্য >backup_cron.txt

সমস্ত নির্ধারিত ক্রন চাকরি অপসারণ

সমস্ত নির্ধারিত ক্রন কাজ অপসারণ করার জন্য, -r পতাকাটি নিম্নরূপ ব্যবহার করুন:

$crontab-আর

ক্রন অনুমতি

আমরা দুটি ফাইলের মাধ্যমে ক্রন্টাব কমান্ডের অ্যাক্সেস সীমাবদ্ধ করতে পারি: / etc/cron.allow এবং/etc/cron.deny।

  • /etc/cron.allow - ব্যবহারকারীদের যোগ করুন (প্রতি লাইনে একটি) যাদের আপনি ক্রন্টাব কমান্ডগুলিতে অ্যাক্সেসের অনুমতি দিতে চান। এই ব্যবহারকারীরা শিডিউল কাজ চালাতে পারেন।
  • /etc/cron.deny - ব্যবহারকারীদের যুক্ত করুন (প্রতি লাইনে একটি) যাদের আপনি ক্রন্টাব কমান্ডগুলিতে অ্যাক্সেস অস্বীকার করতে চান। এই ব্যবহারকারীরা নির্ধারিত কাজ চালাতে পারে না।

Crontab সিনট্যাক্স জেনারেটর

এমন কিছু ওয়েবসাইট আছে যা ক্রোনট্যাবের জন্য সিনট্যাক্স তৈরির অনুমতি দেয়। এই ওয়েবসাইটগুলি সিনট্যাক্স মনে না রেখে ক্রন্টাব এক্সপ্রেশন তৈরি করা সহজ করে তোলে। যদিও সিনট্যাক্স জেনারেটরের জন্য বিভিন্ন ওয়েবসাইট পাওয়া যায় যেমন crontabgenerator.com , crontab-generator.org , এবং cronmaker.com । আমি যা পছন্দ করি এবং সহায়ক পেয়েছি তা হল crontab.guru । ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে, এটি একটি ক্রন্টাব এক্সপ্রেশন তৈরি করে যা আপনি ক্রোনটাব ফাইলে কপি-পেস্ট করতে পারেন।

উপসংহার

এই টিউটোরিয়ালে, আমরা ক্রন কাজের মৌলিক বিষয়গুলি, এর বাক্য গঠন এবং কীভাবে এটি সেট আপ করব তা ব্যাখ্যা করেছি। ক্রোন জবগুলি কীভাবে দেখা যায়, ব্যাকআপ তৈরি করা এবং আর প্রয়োজন না হলে সেগুলি সরিয়ে নেওয়ার বিষয়েও আমরা আলোচনা করেছি।