cron এবং crontab এর মাধ্যমে কাজ শিডিউল করা

শিডিউলিং এবং অটোমেশন - ইউনিক্স/লিনাক্স (UNIX / LINUX) - Computer Programming

218

শিডিউলিং এবং অটোমেশন (Scheduling and Automation)

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

লিনাক্স/ইউনিক্স সিস্টেমে শিডিউলিং সাধারণত cron এবং at কমান্ড ব্যবহার করে করা হয়, এবং অটোমেশন বিভিন্ন স্ক্রিপ্ট, টুলস এবং প্ল্যানার ব্যবহার করে সম্পন্ন করা হয়।


1. শিডিউলিং (Scheduling)

শিডিউলিং হল কমান্ড বা স্ক্রিপ্টগুলিকে নির্দিষ্ট সময় বা সময়সূচী অনুযায়ী চালানো। লিনাক্সে এটি সাধারণত cron এবং at কমান্ডের মাধ্যমে করা হয়।

1.1 Cron কমান্ড

cron হল একটি শিডিউলার, যা নির্দিষ্ট সময়ে বা নির্দিষ্ট ব্যবধানে কাজ চালানোর জন্য ব্যবহৃত হয়। cron একটি সময়সূচী পরিচালনার জন্য একটি ডেমন হিসেবে কাজ করে এবং সিস্টেমের একাধিক কাজকে স্বয়ংক্রিয়ভাবে চালায়।

Cron Job Syntax:
Cron কাজগুলি crontab ফাইলে সংরক্ষিত থাকে, যার মধ্যে নির্দিষ্ট সময় এবং কাজের জন্য সময়সূচী নির্ধারণ করা হয়।

  • Cron Time Syntax:

    * * * * * <command to be executed>
    - - - - -
    | | | | | 
    | | | | +---- Day of week (0 - 7) (Sunday = 0 or 7)
    | | | +------ Month (1 - 12)
    | | +-------- Day of month (1 - 31)
    | +---------- Hour (0 - 23)
    +------------ Minute (0 - 59)

1.2 Cron কাজ তৈরি এবং পরিচালনা (Creating and Managing Cron Jobs)

  • ক্রন কাজ তৈরি করা:

    crontab -e

    এটি crontab ফাইল খুলবে, যেখানে আপনি সময়সূচী অনুযায়ী কাজ যোগ করতে পারেন। উদাহরণ:

    30 2 * * * /path/to/script.sh

    উপরের উদাহরণে, script.sh ফাইলটি প্রতিদিন ২:৩০ AM-এ চালানো হবে।

  • ক্রন কাজ দেখতে:

    crontab -l

    এটি বর্তমানে সিস্টেমে সংরক্ষিত সমস্ত ক্রন কাজ দেখাবে।

  • ক্রন কাজ মুছা:

    crontab -r

    এটি সমস্ত ক্রন কাজ মুছে ফেলবে।

1.3 Cron Log Monitoring

ক্রন কাজের আউটপুট দেখতে আপনি /var/log/syslog ফাইলে লগ দেখতে পারেন (Ubuntu/Debian সিস্টেমে):

grep CRON /var/log/syslog

এটি আপনার সমস্ত ক্রন কাজের লগ দেখাবে।


1.4 At কমান্ড

at কমান্ড ব্যবহার করে আপনি একক কাজ নির্দিষ্ট সময়ে চালানোর জন্য শিডিউল করতে পারেন। এটি একক কাজের জন্য ব্যবহৃত হয়, যেমন একটি নির্দিষ্ট সময়ের মধ্যে একটি স্ক্রিপ্ট চালানো।

  • ব্যবহার:

    at 10:00 AM

    এটি 10:00 AM-এ একটি নতুন কাজ শিডিউল করবে। এরপর আপনি কমান্ডটি টাইপ করতে পারবেন যা নির্দিষ্ট সময়ে এক্সিকিউট হবে।

  • at কাজের তালিকা দেখুন:

    atq
  • কাজ বাতিল করা:

    atrm [job ID]

2. অটোমেশন (Automation)

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

2.1 Shell Scripting (শেল স্ক্রিপ্টিং)

শেল স্ক্রিপ্টিং হল একটি শক্তিশালী অটোমেশন টুল যা লিনাক্স/ইউনিক্স সিস্টেমে কার্যক্রম স্বয়ংক্রিয়ভাবে চালানোর জন্য ব্যবহৃত হয়। আপনি bash বা অন্যান্য শেল ব্যবহার করে স্ক্রিপ্ট লিখতে পারেন যা অটোমেটিক্যালি নির্দিষ্ট কাজ সম্পাদন করবে।

উদাহরণ:

#!/bin/bash
# Backup script
cp -r /home/user/data /home/user/backup
echo "Backup completed on $(date)" >> /home/user/backup_log.txt

এটি data ফোল্ডারটির ব্যাকআপ নিয়ে backup ফোল্ডারে সংরক্ষণ করবে এবং লগ ফাইলে ব্যাকআপের তারিখ এবং সময় লিখে দিবে।

2.2 Automation Tools

বিভিন্ন অটোমেশন টুলস সিস্টেম প্রশাসকদের কাজ সহজ করে দেয়। কিছু সাধারণ টুলস হল:

  • Ansible: এটি একটি শক্তিশালী অটোমেশন টুল যা সার্ভার কনফিগারেশন, সফটওয়্যার ডিপ্লয়মেন্ট এবং সার্ভিস অর্কেস্ট্রেশন স্বয়ংক্রিয়ভাবে করতে ব্যবহৃত হয়।
  • Puppet: একটি ওপেন সোর্স কনফিগারেশন ম্যানেজমেন্ট টুল যা অটোমেশন এবং সার্ভার কনফিগারেশন রক্ষণাবেক্ষণের জন্য ব্যবহৃত হয়।
  • Chef: একটি সফটওয়্যার কনফিগারেশন ম্যানেজমেন্ট টুল যা সার্ভার ও অ্যাপ্লিকেশন কনফিগারেশন এবং ম্যানেজমেন্ট অটোমেট করে।

2.3 Cron এবং Shell Script Automation

Cron এবং Shell Scripting একত্রে ব্যবহৃত হতে পারে। উদাহরণস্বরূপ, আপনি একটি shell script লিখতে পারেন যা প্রতি রাত ১:০০ AM-এ সিস্টেমের ব্যাকআপ নিয়ে আসে এবং এটি cron এর মাধ্যমে অটোমেটিক্যালি চালানো যেতে পারে।

  • cron এবং শেল স্ক্রিপ্ট উদাহরণ:

    0 1 * * * /path/to/backup_script.sh

এটি backup_script.sh স্ক্রিপ্টটি প্রতি রাত ১:০০ AM-এ চালাবে।


3. অটোমেশন এবং স্কেলেবিলিটি

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

  • Ansible এবং Puppet ব্যবহার করে আপনি একযোগভাবে একাধিক সার্ভারে একটি কনফিগারেশন বা সফটওয়্যার ইনস্টলেশন পরিচালনা করতে পারেন, যা সিস্টেম পরিচালনার কাজকে দ্রুত এবং স্কেলেবেল করে।

সারসংক্ষেপ

শিডিউলিং এবং অটোমেশন সিস্টেম প্রশাসকদের জন্য গুরুত্বপূর্ণ টুল, যেগুলি সিস্টেমে কাজ স্বয়ংক্রিয়ভাবে পরিচালনা করতে সহায়ক। Cron, at, এবং shell scripting ব্যবহার করে আপনি সময় নির্ধারণ করা কাজ এবং কার্যক্রম পরিচালনা করতে পারেন, এবং Ansible, Puppet, Chef এর মতো অটোমেশন টুলস ব্যবহার করে বড় স্কেল পরিবেশে সহজেই কাজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...