VPS

⌘K
  1. Home
  2. VPS
  3. Ubuntu
  4. vps ডাটাবেস ব্যাকআপ গুগল ...
  5. ফোল্ডার ব্যাকআপ

ফোল্ডার ব্যাকআপ


উবুন্টু VPS-এ rclone দিয়ে Google Drive-এ SQLite ব্যাকআপ সেটআপ

এই টিউটোরিয়ালে আমরা ধাপে ধাপে দেখাবো কীভাবে উবুন্টু VPS-এ rclone ইনস্টল করে Google Drive-এর সাথে সংযোগ স্থাপন করবেন, উইন্ডোজ মেশিনে rclone authorize সম্পন্ন করবেন, এবং SQLite ডাটাবেসের (db.sqlite3) দৈনিক ব্যাকআপ স্বয়ংক্রিয়ভাবে Google Drive-এ আপলোড করবেন। আমরা প্রতিটি ধাপে স্পষ্ট নির্দেশনা এবং সম্ভাব্য ত্রুটির সমাধান প্রদান করবো।


🧱 প্রথম পর্যায়: উবুন্টু VPS-এ প্রস্তুতি

✅ ধাপ ১: প্রয়োজনীয় ডিরেক্টরি তৈরি

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

sudo mkdir -p /backup/{mssql,mysql,postgres,files}
sudo mkdir -p /usr/local/backup-scripts
sudo chown -R $(whoami):$(whoami) /backup
sudo chmod -R 755 /backup

ব্যাখ্যা:

  • /backup/...: এখানে MSSQL, MySQL, PostgreSQL, এবং ফাইল ব্যাকআপ সংরক্ষণ করা হবে।
  • /usr/local/backup-scripts: ব্যাকআপ স্ক্রিপ্টগুলোর জন্য ডিরেক্টরি।
  • chown: বর্তমান ইউজারকে ডিরেক্টরির মালিক করে।
  • chmod 755: ডিরেক্টরিতে পড়া/লেখার অনুমতি নিশ্চিত করে।

চেক করুন:

ls -ld /backup /usr/local/backup-scripts

আউটপুটে দেখবেন ডিরেক্টরিগুলো তৈরি হয়েছে এবং অনুমতি সঠিকভাবে সেট হয়েছে।


✅ ধাপ ২: rclone ইনস্টল করা

rclone হলো একটি শক্তিশালী টুল যা ক্লাউড স্টোরেজে ফাইল সিঙ্ক এবং ব্যাকআপের জন্য ব্যবহৃত হয়। উবুন্টুতে এটি ইনস্টল করতে:

curl https://rclone.org/install.sh | sudo bash

ইনস্টলেশন যাচাই:

rclone version

আউটপুটে rclone-এর সংস্করণ দেখাবে (যেমন: rclone v1.65.0)।

রিমোট চেক করুন:

rclone listremotes

এখনও কোনো রিমোট কনফিগার করা না থাকলে এটি ফাঁকা আউটপুট দেবে।


✅ ধাপ ৩: rclone-এ Google Drive কনফিগার করা

উবুন্টু VPS-এ Google Drive-এর সাথে rclone সংযোগ করতে আমরা rclone config ব্যবহার করবো। যেহেতু VPS-এ সাধারণত ব্রাউজার থাকে না, আমরা পরে উইন্ডোজ মেশিনে অথেনটিকেশন সম্পন্ন করবো।

rclone config

নিচের ধাপগুলো অনুসরণ করুন:

  1. নতুন রিমোট তৈরি:
   n) New remote
   > n
   name> gdrive
  1. স্টোরেজ টাইপ নির্বাচন:
   Storage> drive
  1. Client ID এবং Secret:
    সাধারণ ব্যবহারের জন্য এগুলো খালি রাখুন। দুইবার এন্টার চাপুন:
   client_id> 
   client_secret> 
  1. Scope নির্বাচন:
    Google Drive-এ ফুল অ্যাক্সেসের জন্য:
   scope> 1
  1. Service Account File:
    আমরা Service Account ব্যবহার করছি না, তাই খালি রেখে এন্টার চাপুন:
   service_account_file> 
  1. অ্যাডভান্সড কনফিগ:
    সাধারণ ব্যবহারের জন্য এডিট করার প্রয়োজন নেই:
   Edit advanced config? (y/n)
   > n
  1. ব্রাউজার অথেনটিকেশন:
    VPS-এ ব্রাউজার নেই, তাই:
   Use web browser to automatically authenticate rclone with remote?
   y) Yes
   n) No
   > n

এই পর্যায়ে rclone একটি কমান্ড প্রদান করবে, যেমন:

rclone authorize "drive" "eyJhbGciOiJSUzI1NiIs..."

এই কমান্ডটি কপি করুন এবং পরবর্তী ধাপে উইন্ডোজে ব্যবহার করবেন।

নোট: এখানে থামুন। আমরা এখন উইন্ডোজে যাবো অথেনটিকেশন সম্পন্ন করতে।


💻 দ্বিতীয় পর্যায়: উইন্ডোজে rclone অথেনটিকেশন

✅ ধাপ ৪: উইন্ডোজে rclone ডাউনলোড এবং সেটআপ

  1. rclone ডাউনলোড:
  • https://rclone.org/downloads থেকে Windows ZIP ফাইল ডাউনলোড করুন।
  • ফাইলটি একটি ফোল্ডারে এক্সট্রাক্ট করুন, যেমন: C:\rclone
  1. কমান্ড প্রম্পটে যান:
   cd C:\rclone

✅ ধাপ ৫: rclone অথেনটিকেশন সম্পন্ন করা

উবুন্টু থেকে পাওয়া rclone authorize কমান্ডটি এখানে চালান। উদাহরণ:

rclone authorize "drive" "eyJhbGciOiJSUzI1NiIs..."
  • এটি আপনার ডিফল্ট ব্রাউজারে Google লগইন পেজ খুলবে।
  • আপনার Google অ্যাকাউন্টে লগইন করুন এবং rclone-কে অ্যাক্সেসের অনুমতি দিন।
  • সফল হলে, কমান্ড প্রম্পটে একটি টোকেন দেখাবে, যেমন:
Paste the following into your remote machine --->
{"token":"{\"access_token\":\"ya29.a0AS3H6NynyjfooU15op5OenUQVbmIcplS6_JrGOVt5YcICsGw6W7GiQ4q7Ro2SSl-ITSF0U3-qWb3rYkneyMqOCnTtx5EriqqhWgM0I1o0lCTmsNOvK21u4yhXpVMHP03drXruHu2n6PlmqPqhd-U6Lg0kghpnJzBnFs6cqM7aCgYKATMSARcSFQHGX2MiSDG4mTmINh4lFq-1S7eozw0175\",\"token_type\":\"Bearer\",\"refresh_token\":\"1//0gJv1c2Hqb6qFCgYIARAAGBASNwF-L9IrzirNbguuezb3kNFlOB80MY06SrL4a_3R1-auYqVz9PFinE-EUkWWAhSePMm15m99dKY\",\"expiry\":\"2025-08-02T19:34:22.1709671+06:00\",\"expires_in\":3599}"}
<---End paste
  • এই টোকেনটি কপি করুন।

🧱 তৃতীয় পর্যায়: উবুন্টুতে ফিরে এসে কনফিগ সম্পন্ন করা

✅ ধাপ ৬: টোকেন পেস্ট করা

উবুন্টু VPS-এ ফিরে যান যেখানে rclone config চলছিল। টোকেন পেস্ট করুন:

config_token> {"token":"{\"access_token\":\"ya29.a0AS3H6Nynyjfoo...","token_type":"Bearer",...}"}

✅ ধাপ ৭: শেয়ারড ড্রাইভ কনফিগারেশন

যদি আপনি সাধারণ Google Drive (যেমন: yourname@gmail.com) ব্যবহার করেন:

Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)
> n

✅ ধাপ ৮: কনফিগারেশন নিশ্চিত করা

কনফিগারেশনের সারাংশ দেখাবে:

Configuration complete.
Options:
- type: drive
- scope: drive
- token: {...}
- team_drive:
Keep this "gdrive" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

y টিপে এন্টার চাপুন।

✅ ধাপ ৯: কনফিগারেশন যাচাই

  1. রিমোট লিস্ট চেক:
   rclone listremotes

আউটপুট: gdrive:

  1. Google Drive-এর রুট ডিরেক্টরি চেক:
   rclone lsd gdrive:

Google Drive-এর ফোল্ডারগুলো দেখাবে।

সফল হলে: আপনার rclone এখন Google Drive-এর সাথে সংযুক্ত!


📦 চতুর্থ পর্যায়: SQLite ব্যাকআপ স্ক্রিপ্ট তৈরি

এখন আমরা একটি স্ক্রিপ্ট তৈরি করবো যা প্রতিদিন db.sqlite3 ফাইলটি ব্যাকআপ করবে এবং Google Drive-এ আপলোড করবে।

✅ ধাপ ১০: ব্যাকআপ স্ক্রিপ্ট তৈরি

sudo nano /usr/local/backup-scripts/backup_UniworldErpBackup_sqlite.sh

নিচের কোডটি পেস্ট করুন:

#!/bin/bash

# আজকের তারিখ
TODAY=$(date +"%Y-%m-%d")

# সোর্স এবং ডেস্টিনেশন পাথ
SOURCE="/root/UniworldErp/UniworldErp/db.sqlite3"
DESTINATION="/backup/files/UniworldErpBackup/$TODAY"

# ডিরেক্টরি তৈরি
mkdir -p "$DESTINATION"

# ব্যাকআপ কপি
cp "$SOURCE" "$DESTINATION/db.sqlite3"

if [ $? -eq 0 ]; then
    echo "$(date): Backup successful: $DESTINATION/db.sqlite3" >> /var/log/UniworldErpBackup.log

    # Google Drive-এ আপলোড
    rclone copy "$DESTINATION/db.sqlite3" gdrive:UniworldErpBackup/$TODAY --progress >> /var/log/UniworldErpBackup.log 2>&1

    if [ $? -eq 0 ]; then
        echo "$(date): Upload to Google Drive successful." >> /var/log/UniworldErpBackup.log
    else
        echo "$(date): Upload to Google Drive failed!" >> /var/log/UniworldErpBackup.log
    fi
else
    echo "$(date): Backup failed!" >> /var/log/UniworldErpBackup.log
fi

সেভ করুন:

  • Ctrl + O, এন্টার, তারপর Ctrl + X

ব্যাখ্যা:

  • TODAY: আজকের তারিখ (YYYY-MM-DD ফরম্যাটে)।
  • SOURCE: SQLite ডাটাবেস ফাইলের পাথ।
  • DESTINATION: লোকাল ব্যাকআপ ফোল্ডার।
  • লগ ফাইলে সময়সহ সফলতা/ব্যর্থতার তথ্য সংরক্ষণ করা হচ্ছে।

✅ ধাপ ১১: স্ক্রিপ্ট এক্সিকিউটেবল করা

sudo chmod +x /usr/local/backup-scripts/backup_UniworldErpBackup_sqlite.sh

✅ ধাপ ১২: স্ক্রিপ্ট টেস্ট করা

sudo /usr/local/backup-scripts/backup_UniworldErpBackup_sqlite.sh

চেক করুন:

  • লোকাল ব্যাকআপ: /backup/files/UniworldErpBackup/YYYY-MM-DD/db.sqlite3
  • Google Drive-এ UniworldErpBackup/YYYY-MM-DD ফোল্ডারে ফাইলটি আপলোড হয়েছে কিনা।
  • লগ ফাইল: tail -f /var/log/UniworldErpBackup.log

✅ ধাপ ১৩: ক্রনজব দিয়ে অটোমেশন

প্রতিদিন রাত ২টায় স্ক্রিপ্টটি চলবে:

sudo crontab -e

নিচের লাইনটি যোগ করুন:

0 2 * * * /usr/local/backup-scripts/backup_UniworldErpBackup_sqlite.sh >> /var/log/UniworldErpBackup.log 2>&1

ব্যাখ্যা:

  • 0 2 * * *: প্রতিদিন রাত ২:০০ টায় চলবে।
  • >> /var/log/UniworldErpBackup.log 2>&1: আউটপুট এবং এরর লগ ফাইলে সংরক্ষণ হবে।

ক্রনজব যাচাই:

crontab -l

✅ ধাপ ১৪: লগ ফাইল চেক

ব্যাকআপ প্রক্রিয়ার স্থিতি দেখতে:

tail -f /var/log/UniworldErpBackup.log

আউটপুটে সফলতা/ব্যর্থতার বিস্তারিত দেখতে পাবেন।


🎉 সমাপ্তি

অভিনন্দন! আপনি সফলভাবে:

  • উবুন্টু VPS-এ rclone ইনস্টল ও Google Drive-এর সাথে সংযোগ স্থাপন করেছেন।
  • উইন্ডোজে rclone অথেনটিকেশন সম্পন্ন করেছেন।
  • SQLite ডাটাবেসের দৈনিক ব্যাকআপ স্ক্রিপ্ট তৈরি করেছেন।
  • ক্রনজব দিয়ে ব্যাকআপ অটোমেশন সেট করেছেন।
  • লগ ফাইলের মাধ্যমে প্রক্রিয়াটি মনিটর করার ব্যবস্থা করেছেন।

How can we help?