Cron Job ব্যবহার করে অটোমেটেড Backup

MySQL এর ব্যাকআপ অটোমেশন এবং স্ক্রিপ্টিং - মাইএসকিউএল (MySQL) - Database Tutorials

224

Cron jobs হল Linux/Unix ভিত্তিক সিস্টেমে ব্যবহৃত একটি সময়সূচী ব্যবস্থাপনা টুল যা নির্দিষ্ট সময় অন্তর স্ক্রিপ্ট বা কমান্ড চালানোর জন্য ব্যবহৃত হয়। MySQL ডেটাবেসের জন্য একটি Cron job তৈরি করা গেলে আপনি স্বয়ংক্রিয়ভাবে ব্যাকআপ নিতে পারবেন, যা ডেটাবেসের সুরক্ষা নিশ্চিত করবে এবং নিয়মিত ব্যাকআপ প্রক্রিয়া চালু থাকবে।

এখানে একটি উদাহরণ দেওয়া হলো কিভাবে আপনি একটি Cron job সেটআপ করতে পারেন, যা স্বয়ংক্রিয়ভাবে MySQL ডেটাবেসের ব্যাকআপ নিবে।


১. ব্যাশ স্ক্রিপ্ট তৈরি করা

প্রথমেই একটি ব্যাশ স্ক্রিপ্ট তৈরি করুন, যা MySQL ডেটাবেসের ব্যাকআপ নিবে।

ব্যাশ স্ক্রিপ্ট উদাহরণ:

  1. ব্যাশ স্ক্রিপ্ট তৈরি করুন:
nano /path/to/backup/backup.sh
  1. ব্যাশ স্ক্রিপ্টের ভিতরে নিম্নলিখিত কোডটি দিন:
#!/bin/bash

# MySQL Credentials
MYSQL_USER="root"
MYSQL_PASSWORD="your_password"
MYSQL_DATABASE="your_database"
BACKUP_DIR="/path/to/backup"

# Create a timestamp for the backup filename
DATE=$(date +\%F)

# Create backup using mysqldump
mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE > $BACKUP_DIR/$MYSQL_DATABASE-$DATE.sql

# Optional: Delete backups older than 7 days (uncomment the next line to enable)
# find $BACKUP_DIR -type f -name "*.sql" -mtime +7 -exec rm {} \;

এখানে:

  • MYSQL_USER: MySQL ইউজারনেম (যেমন root)।
  • MYSQL_PASSWORD: MySQL পাসওয়ার্ড।
  • MYSQL_DATABASE: ব্যাকআপ নিতে চান এমন ডেটাবেসের নাম।
  • BACKUP_DIR: ব্যাকআপ ফাইল সংরক্ষণের লোকেশন।

এই স্ক্রিপ্টটি প্রতিদিনের ব্যাকআপের জন্য সময়সূচী অনুসরণ করবে এবং ফাইলের নামের সাথে বর্তমান তারিখ যোগ করবে। এছাড়া আপনি চাইলে পুরনো ব্যাকআপ ফাইল মুছে ফেলার জন্য একটি লাইন (যেমন, ৭ দিনের পুরনো ব্যাকআপ ফাইল মুছে ফেলা) যোগ করতে পারেন।

  1. স্ক্রিপ্টটি সেভ এবং বন্ধ করুন।

২. স্ক্রিপ্টকে এক্সিকিউটেবল করা

ব্যাশ স্ক্রিপ্টটি চালানোর আগে, এটি এক্সিকিউটেবল (চালানোযোগ্য) করতে হবে। এটি করতে নীচের কমান্ডটি ব্যবহার করুন:

chmod +x /path/to/backup/backup.sh

৩. Cron Job সেটআপ করা

এখন Cron job তৈরি করতে হবে, যাতে স্ক্রিপ্টটি নির্দিষ্ট সময় অন্তর (যেমন, প্রতিদিন) চলতে থাকে।

  1. Cron ট্যাব এডিট করুন:
crontab -e
  1. Cron job সংযোজন করুন:

এখন আপনি একটি নতুন লাইন যোগ করুন যা প্রতিদিন ব্যাকআপ স্ক্রিপ্ট চালাবে। নিচে একটি উদাহরণ দেয়া হলো যা প্রতিদিন রাত ২টায় ব্যাকআপ নেবে:

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

এটি প্রতিদিন রাত ২টায় স্ক্রিপ্টটি চালাবে এবং ডেটাবেসের ব্যাকআপ নেবে। এখানে:

  • 0 2: প্রতিদিন রাত ২টায়।
  • * * *: মাস এবং সপ্তাহের দিন নির্দিষ্ট নয়, তাই সব মাস এবং সপ্তাহের দিনকে বিবেচনায় নেওয়া হয়েছে।
  1. Cron job ট্যাব সংরক্ষণ করুন এবং বন্ধ করুন

৪. ব্যাকআপ যাচাই করা

Cron job সফলভাবে ব্যাকআপ নেওয়ার জন্য, আপনি নিচের কমান্ড ব্যবহার করে নিশ্চিত করতে পারেন যে ব্যাকআপটি সঠিকভাবে তৈরি হয়েছে:

ls /path/to/backup/

এটি ব্যাকআপ ফাইলের তালিকা দেখাবে, যেখানে আপনি আপনার ডেটাবেসের ব্যাকআপ ফাইলটি দেখতে পাবেন।


৫. পুরনো ব্যাকআপ মুছে ফেলা (Optional)

যেহেতু আপনি ব্যাশ স্ক্রিপ্টে পুরনো ব্যাকআপ মুছে ফেলার জন্য কোড যোগ করেছেন (যেমন ৭ দিনের পুরনো ফাইল মুছে ফেলা), এটি স্বয়ংক্রিয়ভাবে কাজ করবে। আপনি যদি এটি চালু না করতে চান, তবে স্ক্রিপ্টের সেই অংশটি কমেন্ট আউট করতে পারেন।


৬. Cron Job মনিটরিং এবং লগিং

Cron job কাজ করছে কিনা তাও নিশ্চিত করতে পারেন লগ ফাইল তৈরি করে। স্ক্রিপ্টে লগিংয়ের জন্য নিম্নলিখিত কোডটি যোগ করতে পারেন:

#!/bin/bash

# Log file path
LOG_FILE="/path/to/backup/backup.log"

# Log the date and time of the backup
echo "Backup started at $(date)" >> $LOG_FILE

# MySQL Backup Command
mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE > $BACKUP_DIR/$MYSQL_DATABASE-$DATE.sql

# Log the result of the backup
if [ $? -eq 0 ]; then
  echo "Backup successfully completed at $(date)" >> $LOG_FILE
else
  echo "Backup failed at $(date)" >> $LOG_FILE
fi

এই স্ক্রিপ্টটি ব্যাকআপ প্রক্রিয়ার সফলতা বা ব্যর্থতা সম্পর্কে একটি লগ তৈরি করবে।


সারাংশ

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

Content added By
Promotion

Are you sure to start over?

Loading...