শেল স্ক্রিপ্ট দিয়ে ব্যাকআপ সিস্টেম তৈরি

প্র্যাকটিস প্রোজেক্টস - ইউনিক্স/লিনাক্স (UNIX / LINUX) - Computer Programming

168

শেল স্ক্রিপ্ট দিয়ে ব্যাকআপ সিস্টেম তৈরি

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

এখানে একটি মৌলিক ব্যাকআপ সিস্টেম তৈরি করার উদাহরণ দেওয়া হলো, যা একটি নির্দিষ্ট ফোল্ডার বা ডিরেক্টরির ব্যাকআপ তৈরি করবে এবং সেটি একটি ডেটাবেসে বা নির্দিষ্ট গন্তব্যে সংরক্ষণ করবে।


1. ব্যাকআপ স্ক্রিপ্ট তৈরি করা

ধরা যাক, আমাদের একটি ডিরেক্টরি /home/user/data/ রয়েছে, এবং আমরা এর ব্যাকআপ তৈরি করতে চাই। ব্যাকআপটি আমরা /backup/ ফোল্ডারে সংরক্ষণ করতে চাই, যেখানে প্রতি ব্যাকআপে বর্তমান তারিখের সাথে একটি নতুন ফোল্ডার তৈরি হবে।

ব্যাকআপ স্ক্রিপ্ট: backup.sh

#!/bin/bash

# ব্যাকআপ সোর্স এবং ডেস্টিনেশন ডিরেক্টরি সেট করা
SOURCE_DIR="/home/user/data"
BACKUP_DIR="/backup"

# বর্তমান তারিখ
DATE=$(date +\%Y\%m\%d_\%H\%M\%S)

# ব্যাকআপ ডিরেক্টরি তৈরি করা (যদি না থাকে)
mkdir -p "$BACKUP_DIR"

# ব্যাকআপ তৈরি করা
tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" -C "$SOURCE_DIR" .

# ব্যাকআপ সফল হলে একটি বার্তা
if [ $? -eq 0 ]; then
  echo "Backup created successfully at $BACKUP_DIR/backup_$DATE.tar.gz"
else
  echo "Backup failed!"
fi

2. ব্যাকআপ স্ক্রিপ্টের ব্যাখ্যা

  • SOURCE_DIR="/home/user/data": আপনি যেই ডিরেক্টরির ব্যাকআপ তৈরি করতে চান, সেটি এখানে নির্ধারণ করবেন।
  • BACKUP_DIR="/backup": ব্যাকআপ ফাইলটি যেখানে সংরক্ষণ করা হবে, সেটি এখানে নির্ধারণ করা হয়।
  • DATE=$(date +\%Y\%m\%d_\%H\%M\%S): এই অংশটি বর্তমান তারিখ এবং সময় সংরক্ষণ করে। ব্যাকআপ ফাইলের নামের মধ্যে তারিখ ও সময় যুক্ত করা হয়, যাতে প্রতিটি ব্যাকআপ আলাদা হয় এবং সহজে শনাক্ত করা যায়।
  • tar -czf: tar কমান্ড দিয়ে আমরা tar.gz ফরম্যাটে ব্যাকআপ ফাইল তৈরি করছি। -C অপশন দিয়ে tar কমান্ডকে নির্দেশ দিচ্ছি যে, ব্যাকআপ সোর্স ডিরেক্টরি থেকে ফাইলগুলো সঙ্কুচিত (compress) করা হবে।
  • mkdir -p "$BACKUP_DIR": ব্যাকআপ ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়। -p অপশনটি ডিরেক্টরি আগে থেকেই থাকলে কোনো সমস্যা সৃষ্টি না করতে সাহায্য করে।
  • if [ $? -eq 0 ]: এই অংশটি ব্যাকআপ প্রক্রিয়া সফল হলে একটি সফলতার বার্তা প্রিন্ট করবে, এবং ব্যাকআপে কোনো ত্রুটি ঘটলে ত্রুটি বার্তা প্রদর্শন করবে।

3. শেল স্ক্রিপ্ট রান করা

এই স্ক্রিপ্টটি চালানোর জন্য নিচের পদক্ষেপগুলি অনুসরণ করতে হবে:

  1. স্ক্রিপ্ট ফাইলটি তৈরি করুন:

    nano backup.sh
  2. স্ক্রিপ্টটি লিখুন এবং সংরক্ষণ করুন (Ctrl + O, Enter, Ctrl + X)।
  3. স্ক্রিপ্টটি এক্সিকিউটেবল করতে:

    chmod +x backup.sh
  4. স্ক্রিপ্টটি চালান:

    ./backup.sh

4. ক্রন জবের মাধ্যমে স্বয়ংক্রিয় ব্যাকআপ

ক্রন (cron) একটি টুল যা স্বয়ংক্রিয়ভাবে নির্দিষ্ট সময়ে স্ক্রিপ্ট চালাতে সাহায্য করে। আপনি যদি চান যে, ব্যাকআপটি স্বয়ংক্রিয়ভাবে প্রতি দিন বা প্রতি সপ্তাহে একবার চালানো হোক, তবে আপনি ক্রন জব ব্যবহার করতে পারেন।

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

  1. ক্রন ট্যাব ফাইল খুলুন:

    crontab -e
  2. ক্রন জব লিখুন:
    যদি আপনি চান যে প্রতিদিন রাত ২টায় ব্যাকআপ স্ক্রিপ্টটি চলুক, তবে নিচের মতো একটি লাইন যোগ করুন:

    0 2 * * * /path/to/backup.sh

    এখানে, 0 2 * * * প্রতিদিন রাত ২টায় স্ক্রিপ্ট চালানোর জন্য নির্দেশ দেয়। এই অংশে সময় ও তারিখের ফরম্যাট রয়েছে:

    • প্রথম সংখ্যা: মিনিট (0-59)
    • দ্বিতীয় সংখ্যা: ঘণ্টা (0-23)
    • তৃতীয় সংখ্যা: মাসের দিন (1-31)
    • চতুর্থ সংখ্যা: মাস (1-12)
    • পঞ্চম সংখ্যা: সপ্তাহের দিন (0-7, 0 বা 7 রবিবার)

    /path/to/backup.sh এখানে আপনার স্ক্রিপ্টের পাথ দিন।

  3. ক্রন ট্যাব সংরক্ষণ করুন এবং বন্ধ করুন

এটি আপনার ব্যাকআপ স্ক্রিপ্টটি প্রতিদিন নির্দিষ্ট সময়ে চালানোর জন্য স্বয়ংক্রিয়ভাবে সেট করবে।


5. ব্যাকআপ ফাইল ম্যানেজমেন্ট

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

পুরনো ব্যাকআপ মুছে ফেলা:

#!/bin/bash

# ব্যাকআপ ডিরেক্টরি
BACKUP_DIR="/backup"

# পুরনো ব্যাকআপ মুছে ফেলা (৭ দিনের পুরনো ব্যাকআপ)
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +7 -exec rm -f {} \;

এই স্ক্রিপ্টটি /backup ডিরেক্টরিতে ৭ দিনের পুরনো .tar.gz ফাইলগুলো মুছে ফেলবে।


সারসংক্ষেপ

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

Are you sure to start over?

Loading...