উবুন্টু 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নিচের ধাপগুলো অনুসরণ করুন:
- নতুন রিমোট তৈরি:
n) New remote
> n
name> gdrive- স্টোরেজ টাইপ নির্বাচন:
Storage> drive- Client ID এবং Secret:
সাধারণ ব্যবহারের জন্য এগুলো খালি রাখুন। দুইবার এন্টার চাপুন:
client_id>
client_secret> - Scope নির্বাচন:
Google Drive-এ ফুল অ্যাক্সেসের জন্য:
scope> 1- Service Account File:
আমরা Service Account ব্যবহার করছি না, তাই খালি রেখে এন্টার চাপুন:
service_account_file> - অ্যাডভান্সড কনফিগ:
সাধারণ ব্যবহারের জন্য এডিট করার প্রয়োজন নেই:
Edit advanced config? (y/n)
> n- ব্রাউজার অথেনটিকেশন:
VPS-এ ব্রাউজার নেই, তাই:
Use web browser to automatically authenticate rclone with remote?
y) Yes
n) No
> nএই পর্যায়ে rclone একটি কমান্ড প্রদান করবে, যেমন:
rclone authorize "drive" "eyJhbGciOiJSUzI1NiIs..."এই কমান্ডটি কপি করুন এবং পরবর্তী ধাপে উইন্ডোজে ব্যবহার করবেন।
নোট: এখানে থামুন। আমরা এখন উইন্ডোজে যাবো অথেনটিকেশন সম্পন্ন করতে।
💻 দ্বিতীয় পর্যায়: উইন্ডোজে rclone অথেনটিকেশন
✅ ধাপ ৪: উইন্ডোজে rclone ডাউনলোড এবং সেটআপ
- rclone ডাউনলোড:
- https://rclone.org/downloads থেকে Windows ZIP ফাইল ডাউনলোড করুন।
- ফাইলটি একটি ফোল্ডারে এক্সট্রাক্ট করুন, যেমন:
C:\rclone।
- কমান্ড প্রম্পটে যান:
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> yy টিপে এন্টার চাপুন।
✅ ধাপ ৯: কনফিগারেশন যাচাই
- রিমোট লিস্ট চেক:
rclone listremotesআউটপুট: gdrive:
- 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 ডাটাবেসের দৈনিক ব্যাকআপ স্ক্রিপ্ট তৈরি করেছেন।
- ক্রনজব দিয়ে ব্যাকআপ অটোমেশন সেট করেছেন।
- লগ ফাইলের মাধ্যমে প্রক্রিয়াটি মনিটর করার ব্যবস্থা করেছেন।