উবুন্টুতে ক্রন আয়ত্ত করা: পেশাদার মতো নির্ধারিত কাজ স্বয়ংক্রিয় করা

目次

১. ক্রন কী?

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

ক্রন কীভাবে কাজ করে

ক্রন কাজগুলোকে একটি কনফিগারেশন ফাইল “crontab”‑এ সংজ্ঞায়িত করে। crontab‑এ পাঁচটি ফিল্ড থাকে, যা নির্ধারণ করে কখন কোনো কাজ চালানো হবে, ফলে ব্যবহারকারীরা সুনির্দিষ্ট সময়ে কাজ নির্ধারণ করতে পারেন।

  • মিনিট (0–59)
  • ঘন্টা (0–23)
  • মাসের দিন (1–31)
  • মাস (1–12)
  • সপ্তাহের দিন (0–7, যেখানে 0 এবং 7 উভয়ই রবিবারকে নির্দেশ করে)

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

0 5 * * * tar -zcf /var/backups/home.tgz /home/

এটি দেখায় কীভাবে ক্রন পুনরাবৃত্ত কাজগুলোকে দক্ষতার সঙ্গে স্বয়ংক্রিয় করে।

ক্রন কে ব্যবহার করা উচিত?

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

২. ক্রন জব সেটআপ করা

ক্রন্ট্যাব সম্পাদনা করা

একটি ক্রন জব কনফিগার করতে, আপনাকে আপনার ইউজার‑স্পেসিফিক crontab ফাইলটি সম্পাদনা করতে হবে। উবুন্টুতে, আপনি crontab -e কমান্ড ব্যবহার করে এই ফাইলটি খুলতে পারেন:

crontab -e

ক্রন জবের মৌলিক সিনট্যাক্স

একটি ক্রন জবের গঠন হল সময় ফিল্ডগুলো, তারপরে চালানোর কমান্ড। সাধারণ সিনট্যাক্সটি হল:

Minute Hour Day Month DayOfWeek Command

নিচের ক্রন জবটি প্রতিদিন সকাল ৫টায় /home/ ডিরেক্টরির ব্যাকআপ তৈরি করে:

0 5 * * * tar -zcf /var/backups/home.tgz /home/

ক্রন্ট্যাব এন্ট্রি সংরক্ষণ ও যাচাই করা

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

crontab -l

৩. উন্নত ক্রন জব নির্ধারণ

কাস্টম ইন্টারভ্যালে কাজ চালানো

যদি আপনাকে প্রতি মিনিট বা প্রতি পাঁচ মিনিটে কমান্ড চালাতে হয়, তবে নিচের মতো নির্ধারণ করতে পারেন:

  • প্রতি মিনিটে চালান:
    * * * * * /path/to/script.sh
    
  • প্রতি ৫ মিনিটে চালান:
    */5 * * * * /path/to/script.sh
    

নির্দিষ্ট দিন বা সময়সীমায় কাজ চালানো

কোনো স্ক্রিপ্টকে শুধুমাত্র নির্দিষ্ট দিনে চালাতে হলে, সপ্তাহের দিন ফিল্ডটি ব্যবহার করুন। উদাহরণস্বরূপ, প্রতি সোমবার সকাল ২:১৫টায় স্ক্রিপ্ট চালাতে চাইলে:

15 2 * * 1 /path/to/script.sh

৪. ত্রুটি পরিচালনা ও ট্রাবলশুটিং

সাধারণ ক্রন জব সমস্যাবলি ও সমাধান

ক্রন জব চালু হয় না

যদি কোনো ক্রন জব চালু না হয়, তবে নিম্নলিখিত বিষয়গুলো পরীক্ষা করুন:

  • অনুমতি: স্ক্রিপ্ট বা কমান্ডের এক্সিকিউটেবল অনুমতি আছে কিনা নিশ্চিত করুন।
  • পূর্ণ পাথ ব্যবহার করুন: ক্রন সীমিত $PATH ব্যবহার করে, তাই কমান্ডে অবশ্যই সম্পূর্ণ পাথ উল্লেখ করতে হবে।
    /usr/bin/python3 /path/to/script.py
    

লগ পরীক্ষা করা

ক্রনের লগ /var/log/syslog‑এ সংরক্ষিত থাকে। এই ফাইলটি পরীক্ষা করলে কোনো কাজ ব্যর্থ হয়েছে কিনা বা সফলভাবে চালিত হয়েছে কিনা জানা যায়:

grep CRON /var/log/syslog

৫. নিরাপত্তা বিবেচনা

ব্যবহারকারী অ্যাক্সেস নিয়ন্ত্রণ

কোন ব্যবহারকারী ক্রন জব তৈরি করতে পারবে তা সীমাবদ্ধ করতে /etc/cron.allow/etc/cron.deny ব্যবহার করুন। /etc/cron.allow‑এ একটি ইউজারনেম যোগ করলে শুধুমাত্র সেই ব্যবহারকারী ক্রন জব কনফিগার করতে পারবে:

echo "user_name" >> /etc/cron.allow

লগইন নিরাপত্তা ও ক্রন জব

যখন ক্রন এমন কাজ চালায় যা প্রমাণীকরণ প্রয়োজন, তখন SSH কী স্বয়ংক্রিয় করা বা পাসওয়ার্ড নিরাপদে পরিচালনা করা প্রয়োজন হতে পারে।

৬. কম ঘন ঘন কাজের জন্য অ্যানাক্রন ব্যবহার করা

অ্যানাক্রন কী?

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

৭. ব্যবহারিক ক্রন জব উদাহরণ

ব্যাকআপ স্বয়ংক্রিয় করা

টাইমস্ট্যাম্পসহ দৈনিক ব্যাকআপ তৈরি করার উদাহরণ ক্রন জব:

0 2 * * * tar -zcf /var/backups/home_backup_$(date +\%Y-\%m-\%d).tgz /home/

৮. উপসংহার

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