└── README.md /README.md: -------------------------------------------------------------------------------- 1 | ![mongoDB](https://upload.wikimedia.org/wikipedia/en/5/5a/MongoDB_Fores-Green.svg) 2 | 3 | ## **Ubuntu VPS-এ MongoDB Setup, User Management, এবং Firewall Configuration (Step-by-Step)** 4 | 5 | --- 6 | 7 | এই গাইডে আমি বিস্তারিতভাবে Ubuntu VPS-এ **MongoDB ইনস্টল, ইউজার তৈরি, ডাটাবেস তৈরি, ইউজার ও ডাটাবেস ম্যানেজমেন্ট, Firewall কনফিগারেশন, IP Access Control এবং Automatic Backup** সম্পর্কে বলব। 8 | 9 | --- 10 | 11 | ## **Step 1: MongoDB Install করা (Locally)** 12 | 13 | MongoDB ইনস্টল করার জন্য নিচের কমান্ডগুলো রান করুন: 14 | 15 | ### **1. MongoDB-এর Official GPG Key Add করুন** 16 | 17 | MongoDB-এর প্যাকেজ ভেরিফাই করার জন্য এর GPG key যুক্ত করতে হবে। 18 | 19 | ```bash 20 | curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg 21 | ``` 22 | 23 | ### **2. MongoDB-এর Official Repository যোগ করুন** 24 | 25 | ```bash 26 | echo "deb [signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list 27 | ``` 28 | 29 | ### **3. System Update করুন** 30 | 31 | ```bash 32 | sudo apt update 33 | ``` 34 | 35 | ### **যদি তুমি oracular (Ubuntu 24.04 LTS) ব্যবহার করে থাকো তাহলে এটি এখনো অফিসিয়ালভাবে MongoDB 7.0 সমর্থন করছে না, তুমি আগের Ubuntu 22.04 (jammy) কোডনেম ব্যবহার করতে পারো:** 36 | 37 | ```bash 38 | echo "deb [signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list 39 | ``` 40 | 41 | #### **System Update করুন** 42 | 43 | ```bash 44 | sudo apt update 45 | ``` 46 | 47 | ### **4. MongoDB Install করুন** 48 | 49 | ```bash 50 | sudo apt install -y mongodb-org 51 | ``` 52 | 53 | ### **5. MongoDB Service চালু করুন** 54 | 55 | ```bash 56 | sudo systemctl start mongod 57 | ``` 58 | 59 | ### **6. MongoDB সার্ভিস চালু থাকবে নিশ্চিত করুন** 60 | 61 | ```bash 62 | sudo systemctl enable mongod 63 | ``` 64 | 65 | ### **7. MongoDB চালু হয়েছে কিনা চেক করুন** 66 | 67 | ```bash 68 | sudo systemctl status mongod 69 | ``` 70 | 71 | যদি সব ঠিক থাকে, তাহলে নিচের মতো মেসেজ দেখাবে: 72 | 73 | ``` 74 | ● mongod.service - MongoDB Database Server 75 | Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) 76 | Active: active (running) since... 77 | ``` 78 | 79 | এই স্ট্যাটাস পেতে **q চাপলে** টার্মিনাল থেকে বেরিয়ে আসবে। 80 | 81 | --- 82 | 83 | ## **Step 2: MongoDB Shell-এ ঢোকা** 84 | 85 | MongoDB Shell চালু করতে: 86 | 87 | ```bash 88 | mongosh 89 | ``` 90 | 91 | এতে MongoDB-এর ইন্টারেক্টিভ কনসোল চালু হবে। 92 | 93 | --- 94 | 95 | ## **Step 3: নতুন Database তৈরি করা** 96 | 97 | MongoDB তে নতুন ডাটাবেস তৈরি করতে: 98 | 99 | ```javascript 100 | use myDatabase 101 | ``` 102 | 103 | এটি `myDatabase` নামে একটি নতুন ডাটাবেস তৈরি করবে। তবে এটি তখনই সংরক্ষিত হবে যখন আপনি এতে ডাটা যুক্ত করবেন। 104 | 105 | ডাটাবেসে একটি কালেকশন (টেবিলের মতো) তৈরি করুন: 106 | 107 | ```javascript 108 | db.myCollection.insertOne({ name: "Test Data" }); 109 | ``` 110 | 111 | ডাটাবেস লিস্ট দেখতে: 112 | 113 | ```javascript 114 | show dbs 115 | ``` 116 | 117 | --- 118 | 119 | ## **Step 4: নতুন User তৈরি করা ও ডাটাবেসের সাথে সংযুক্ত করা** 120 | 121 | ```javascript 122 | use admin 123 | db.createUser({ 124 | user: "myUser", 125 | pwd: "myPassword", 126 | roles: [{ role: "readWrite", db: "myDatabase" }] 127 | }); 128 | ``` 129 | 130 | **ইউজার তৈরি হওয়ার পর চেক করুন:** 131 | 132 | ```javascript 133 | show users 134 | ``` 135 | 136 | --- 137 | 138 | ## **Step 5: ইউজারের পাসওয়ার্ড পরিবর্তন করা** 139 | 140 | ```javascript 141 | use admin 142 | db.updateUser("myUser", { pwd: "newSecurePassword" }); 143 | ``` 144 | 145 | --- 146 | 147 | ## **Step 6: User মুছে ফেলা (Delete)** 148 | 149 | ```javascript 150 | use admin 151 | db.dropUser("myUser") 152 | ``` 153 | 154 | --- 155 | 156 | ## **Step 7: Database Rename করা (MongoDB-তে সরাসরি Rename অপশন নেই)** 157 | 158 | MongoDB-তে ডাটাবেস Rename করার কোনো সরাসরি কমান্ড নেই। তবে, **নতুন ডাটাবেস তৈরি করে পুরানো ডাটাবেস থেকে ডাটা কপি করে, পরে পুরানোটি ডিলিট করতে হয়।** 159 | 160 | **Database Rename করার পদ্ধতি:** 161 | 162 | ```bash 163 | mongodump --db oldDatabase --out /backup/ 164 | mongorestore --db newDatabase /backup/oldDatabase/ 165 | ``` 166 | 167 | --- 168 | 169 | ## **Step 8: Database Delete করা** 170 | 171 | MongoDB-তে কোনো ডাটাবেস **ডিলিট করার আগে সেটিতে ঢুকতে হবে**: 172 | 173 | ```javascript 174 | use myDatabase 175 | db.dropDatabase() 176 | ``` 177 | 178 | ডাটাবেস ডিলিট হয়ে গেলে `show dbs` কমান্ড দিলে আর এটি দেখা যাবে না। 179 | 180 | --- 181 | 182 | ## **Step 9: MongoDB Restart, Stop ও Reload করা** 183 | 184 | ```bash 185 | # MongoDB Restart 186 | sudo systemctl restart mongod 187 | 188 | # MongoDB Stop 189 | sudo systemctl stop mongod 190 | 191 | # MongoDB Start 192 | sudo systemctl start mongod 193 | ``` 194 | 195 | --- 196 | 197 | ## **সবকিছু ঠিকভাবে কাজ করছে কিনা চেক করা** 198 | 199 | ```bash 200 | mongosh 201 | ``` 202 | 203 | তারপর লগইন করে চেক করুন: 204 | 205 | ```javascript 206 | use myDatabase 207 | show collections 208 | db.myCollection.find() 209 | ``` 210 | 211 | --- 212 | 213 | ## **Step 10: নির্দিষ্ট IP বা সকল IP থেকে Access দেওয়া (Firewall + Bind IP)** 214 | 215 | MongoDB ডিফল্টভাবে শুধু লোকালহোস্ট (`127.0.0.1`) থেকে কানেক্ট হতে পারে। VPS-এর বাইরের কোনো সার্ভার থেকে অ্যাক্সেস দিতে হলে **bindIP পরিবর্তন ও firewall কনফিগার করতে হবে**। 216 | 217 | ### **1. MongoDB Config পরিবর্তন করা (Bind IP সেট করা)** 218 | 219 | ফাইল ওপেন করুন: 220 | 221 | ```bash 222 | sudo nano /etc/mongod.conf 223 | ``` 224 | 225 | নিচের অংশটি খুঁজুন: 226 | 227 | ```yaml 228 | # network interfaces 229 | net: 230 | bindIp: 127.0.0.1 231 | ``` 232 | 233 | **নির্দিষ্ট IP থেকে Access অনুমতি দিতে (যেমন: `192.168.1.100`)** 234 | 235 | ```yaml 236 | net: 237 | bindIp: 127.0.0.1,192.168.1.100 238 | ``` 239 | 240 | **সকল IP থেকে Access দিতে (⚠️ সিকিউরিটির জন্য ঝুঁকিপূর্ণ)** 241 | 242 | ```yaml 243 | net: 244 | bindIp: 0.0.0.0 245 | ``` 246 | 247 | পরিবর্তন সংরক্ষণ করতে: 248 | 👉 **CTRL + X → Y → ENTER** 249 | 250 | ### **2. Firewall Rule যোগ করা** 251 | 252 | **নির্দিষ্ট IP অনুমতি দিতে (192.168.1.100)** 253 | 254 | ```bash 255 | sudo ufw allow from 192.168.1.100 to any port 27017 256 | ``` 257 | 258 | **সকল IP কে Access দিতে (⚠️ নিরাপদ নয়)** 259 | 260 | ```bash 261 | sudo ufw allow 27017/tcp 262 | ``` 263 | 264 | --- 265 | 266 | ## **Step 11: Firewall Enable ও Status চেক করা** 267 | 268 | ```bash 269 | sudo ufw enable 270 | sudo ufw status 271 | ``` 272 | 273 | MongoDB Firewall rule চেক করতে: 274 | 275 | ```bash 276 | sudo ufw status numbered 277 | ``` 278 | 279 | --- 280 | 281 | ## **সংক্ষেপে গুরুত্বপূর্ণ কমান্ডগুলো** 282 | 283 | | কাজ | কমান্ড | 284 | | ------------------- | ------------------------------------------------------------------------------- | 285 | | MongoDB Install | `sudo apt install -y mongodb-org` | 286 | | MongoDB Start | `sudo systemctl start mongod` | 287 | | MongoDB Status | `sudo systemctl status mongod` | 288 | | MongoDB Shell Open | `mongosh` | 289 | | নতুন Database তৈরি | `use myDatabase` | 290 | | নতুন User তৈরি | `db.createUser({...})` | 291 | | User Password Reset | `db.updateUser("user", {pwd: "newPass"})` | 292 | | Firewall Enable | `sudo ufw enable` | 293 | | নির্দিষ্ট IP Allow | `sudo ufw allow from 192.168.1.100 to any port 27017` | 294 | | সকল IP Allow | `sudo ufw allow 27017/tcp` | 295 | | Database Rename | `mongodump --db oldDB --out /backup/ && mongorestore --db newDB /backup/oldDB/` | 296 | | Database Delete | `use myDatabase; db.dropDatabase()` | 297 | 298 | --- 299 | 300 | এভাবে আপনি **MongoDB সেটআপ, ইউজার ম্যানেজমেন্ট, ডাটাবেস ম্যানেজমেন্ট, এবং Firewall কনফিগারেশন** করতে পারবেন! 🚀 301 | 302 |
303 |
304 |
305 |
306 |
307 |
308 | 309 | # **MongoDB automatic backup** সেটআপ করবেন কীভাবে এবং **প্রতিদিন ২ বার** ব্যাকআপ নেওয়ার ব্যবস্থা করা। 310 | 311 | --- 312 | 313 | ## **Step 1: VPS-এ লগইন করুন** 314 | 315 | প্রথমে **VPS-এর টার্মিনাল বা SSH** তে লগইন করুন: 316 | 317 | ```bash 318 | ssh your_user@your_vps_ip 319 | ``` 320 | 321 | এখানে: 322 | 323 | - `your_user` = আপনার VPS-এর ইউজারনেম 324 | - `your_vps_ip` = আপনার VPS-এর IP Address 325 | 326 | --- 327 | 328 | ## **Step 2: ব্যাকআপ সংরক্ষণের জন্য ফোল্ডার তৈরি করুন** 329 | 330 | MongoDB-এর ব্যাকআপগুলো সংরক্ষণ করার জন্য একটি ফোল্ডার তৈরি করুন: 331 | 332 | ```bash 333 | mkdir -p ~/mongodb_backups 334 | ``` 335 | 336 | এটি আপনার **হোম ডিরেক্টরিতে** `mongodb_backups` নামে একটি ফোল্ডার তৈরি করবে। 337 | 338 | --- 339 | 340 | ## **Step 3: ব্যাকআপ স্ক্রিপ্ট তৈরি করুন** 341 | 342 | এখন `backup.sh` নামে একটি স্ক্রিপ্ট তৈরি করতে হবে। এই ফাইলটি ব্যাকআপ নেওয়ার কাজ করবে। 343 | 344 | 1. **nano editor** দিয়ে স্ক্রিপ্ট তৈরি করুন: 345 | 346 | ```bash 347 | nano ~/backup.sh 348 | ``` 349 | 350 | 2. ফাইলের মধ্যে নিচের কোড **copy-paste** করুন: 351 | 352 | ```bash 353 | #!/bin/bash 354 | 355 | # ব্যাকআপের জন্য তারিখ ও সময় যুক্ত করা 356 | TIMESTAMP=$(date +"%F-%H-%M-%S") 357 | 358 | # MongoDB সেটআপ তথ্য 359 | DB_NAME="your_database_name" # আপনার ডাটাবেসের নাম দিন 360 | BACKUP_DIR="/home/your_user/mongodb_backups" # ব্যাকআপ সংরক্ষণের লোকেশন 361 | MONGO_HOST="localhost" 362 | MONGO_PORT="27017" 363 | 364 | # ব্যাকআপ ডিরেক্টরি যদি না থাকে, তাহলে তৈরি করো 365 | mkdir -p "$BACKUP_DIR" 366 | 367 | # MongoDB ডাটাবেস ব্যাকআপ নেওয়া 368 | mongodump --host $MONGO_HOST --port $MONGO_PORT --db $DB_NAME --out "$BACKUP_DIR/$DB_NAME-$TIMESTAMP" 369 | 370 | # পুরনো ৭ দিনের ব্যাকআপ ডিলিট করা 371 | find "$BACKUP_DIR" -type d -mtime +7 -exec rm -rf {} \; 372 | 373 | echo "MongoDB backup completed at $TIMESTAMP" 374 | ``` 375 | 376 | ⚠️ **যা পরিবর্তন করবেন:** 377 | 378 | - `your_database_name` = আপনার **MongoDB database name** 379 | - `your_user` = আপনার VPS-এর **username** 380 | 381 | 3. **ফাইলটি সংরক্ষণ করুন:** 382 | - **Ctrl + X** চাপুন 383 | - তারপর **Y** চাপুন এবং **Enter** দিন 384 | 4. **যদি সম্পূর্ণ Database সংরক্ষণ করতে চান:** 385 | 386 | ```bash 387 | #!/bin/bash 388 | echo "Backup script started at $(date)" >> /root/erro_file_store/mongodb_backup.log 389 | # ব্যাকআপের জন্য তারিখ ও সময় যুক্ত করা 390 | TIMESTAMP=$(date +"%F-%H-%M-%S") 391 | 392 | # MongoDB সেটআপ তথ্য 393 | BACKUP_DIR="/home/root/mongodb_backups" # ব্যাকআপ সংরক্ষণের লোকেশন 394 | MONGO_HOST="localhost" 395 | MONGO_PORT="27017" 396 | 397 | # ব্যাকআপ ডিরেক্টরি যদি না থাকে, তাহলে তৈরি করো 398 | mkdir -p "$BACKUP_DIR" 399 | 400 | # MongoDB সকল ডাটাবেসের ব্যাকআপ নেওয়া 401 | mongodump --host $MONGO_HOST --port $MONGO_PORT --out "$BACKUP_DIR/mongodb-backup-$> 402 | 403 | # Google Drive এ ব্যাকআপ আপলোড করা (rclone ব্যবহার) 404 | rclone copy "$BACKUP_DIR/mongodb-backup-$TIMESTAMP" gdrive:/mongodb_backups/ --log-> 405 | 406 | # পুরনো ৭ দিনের ব্যাকআপ ডিলিট করা 407 | find "$BACKUP_DIR" -type d -mtime +7 -exec rm -rf {} \; 408 | 409 | echo "MongoDB backup completed at $TIMESTAMP and uploaded to Google Drive" 410 | 411 | ``` 412 | 413 | 414 | --- 415 | 416 | ## **Step 4: স্ক্রিপ্টটি এক্সিকিউটেবল করুন** 417 | এই স্ক্রিপ্টটি রান করার জন্য **এক্সিকিউটেবল (Executable)** করতে হবে: 418 | ```bash 419 | chmod +x ~/backup.sh 420 | ```` 421 | 422 | --- 423 | 424 | ## **Step 5: Cron Job সেটআপ করুন (প্রতিদিন ২ বার ব্যাকআপ নেওয়া)** 425 | 426 | এখন, আমরা **ক্রনজব (cron job)** সেট করব যাতে **প্রতিদিন ২ বার (সকাল ৮টা এবং রাত ৮টা)** ব্যাকআপ নেয়। 427 | 428 | 1. ক্রনজব এডিটর খুলুন: 429 | 430 | ```bash 431 | crontab -e 432 | ``` 433 | 434 | 2. নিচের লাইনটি যোগ করুন: 435 | 436 | ```bash 437 | 0 8 * * * /home/your_user/backup.sh >> /home/your_user/backup.log 2>&1 438 | 0 20 * * * /home/your_user/backup.sh >> /home/your_user/backup.log 2>&1 439 | ``` 440 | 441 | **ব্যাখ্যা:** 442 | 443 | - `0 8 * * *` → **প্রতিদিন সকাল ৮টায় ব্যাকআপ নিবে** 444 | - `0 20 * * *` → **প্রতিদিন রাত ৮টায় ব্যাকআপ নিবে** 445 | - `backup.log` → ব্যাকআপের **লগ (log) ফাইল** তৈরি হবে, যেখানে ব্যাকআপ নেওয়ার রেকর্ড থাকবে। 446 | 447 | 3. **Ctrl + X** চাপুন, তারপর **Y** চাপুন এবং **Enter** দিন। 448 | 449 | --- 450 | 451 | ## **Step 6: ম্যানুয়ালি ব্যাকআপ পরীক্ষা করুন** 452 | 453 | ক্রনজব কাজ করছে কিনা তা নিশ্চিত করতে **ম্যানুয়ালি** স্ক্রিপ্ট চালান: 454 | 455 | ```bash 456 | ~/backup.sh 457 | ``` 458 | 459 | তারপর, চেক করুন ব্যাকআপ ফোল্ডারে ফাইল তৈরি হয়েছে কিনা: 460 | 461 | ```bash 462 | ls -lah ~/mongodb_backups 463 | ``` 464 | 465 | যদি সব ঠিক থাকে, তাহলে দেখবেন একটি নতুন ব্যাকআপ ফোল্ডার তৈরি হয়েছে। 466 | 467 | --- 468 | 469 | ## **Step 7: ব্যাকআপ ফাইল ডাউনলোড / রিস্টোর করার পদ্ধতি** 470 | 471 | ### **✅ ব্যাকআপ ফাইল ডাউনলোড করা (VPS থেকে নিজের কম্পিউটারে)** 472 | 473 | আপনি **scp** কমান্ড দিয়ে ব্যাকআপ ফাইল ডাউনলোড করতে পারেন: 474 | 475 | ```bash 476 | scp -r your_user@your_vps_ip:/home/your_user/mongodb_backups ./ 477 | ``` 478 | 479 | এটি **আপনার লোকাল পিসিতে** `mongodb_backups` ফোল্ডারটি ডাউনলোড করবে। 480 | 481 | --- 482 | 483 | ### **✅ MongoDB ব্যাকআপ রিস্টোর করা (Restore Database from Backup)** 484 | 485 | ব্যাকআপ থেকে **ডাটাবেস রিস্টোর** করতে চাইলে এই কমান্ড ব্যবহার করুন: 486 | 487 | ```bash 488 | mongorestore --db your_database_name /home/your_user/mongodb_backups/backup_folder_name/ 489 | ``` 490 | 491 | এখানে `backup_folder_name` পরিবর্তন করে আপনার নির্দিষ্ট ব্যাকআপ ফোল্ডারের নাম দিন। 492 | 493 | --- 494 | 495 | ## **NOTE** 496 | 497 | এখন আপনার **MongoDB automatic backup system** **সফলভাবে সেটআপ** করা হয়ে গেছে! প্রতিদিন **সকাল ৮টা ও রাত ৮টা**-তে VPS **অটোমেটিক MongoDB ব্যাকআপ** নিয়ে সংরক্ষণ করবে এবং পুরনো **৭ দিনের ব্যাকআপ মুছে ফেলবে।** ⤵ 498 | 499 |
500 |
501 |
502 |
503 |
504 | 505 | # **Google Drive-এ MongoDB Backup অটোমেটিক আপলোড** 506 | 507 | আপনার VPS-এ MongoDB ব্যাকআপ গুগল ড্রাইভে **অটোমেটিক** আপলোড করতে **rclone** ব্যবহার করা হবে। 508 | 509 | --- 510 | 511 | ### **Step 1: VPS-এ rclone ইন্সটল করুন** 512 | 513 | VPS-এর টার্মিনালে নিচের কমান্ড দিন: 514 | 515 | ```bash 516 | curl https://rclone.org/install.sh | sudo bash 517 | ``` 518 | 519 | এটি **rclone** ইন্সটল করবে। 520 | 521 | --- 522 | 523 | ### **Step 2: rclone কনফিগার করুন (Google Drive একাউন্ট যুক্ত করুন)** 524 | 525 | ```bash 526 | rclone config 527 | ``` 528 | 529 | এরপর ধাপে ধাপে অনুসরণ করুন: 530 | 531 | 1. নতুন কনফিগার তৈরি করুন: 532 | 533 | - `n` চাপুন (New remote) 534 | - নাম দিন: `gdrive` 535 | 536 | 2. Google Drive নির্বাচন করুন: 537 | 538 | - `Storage type` চাবে, সেখানে `drive` টাইপ করুন 539 | 540 | 3. **Client ID & Secret এন্টার করা লাগবে না**, শুধু **Enter** চাপুন 541 | 542 | 4. **Authentication Method**: 543 | 544 | - **Full access দিতে** `1` চাপুন 545 | 546 | 5. **Google Drive Authorization:** 547 | - VPS-এর **ব্রাউজার না থাকলে**, আপনাকে একটা **লিংক দেবে** 548 | - **লিংক ওপেন করে** আপনার **Google Account** দিয়ে লগইন করুন 549 | - **Authentication কোড কপি করে** VPS-এর টার্মিনালে পেস্ট করুন 550 | 551 | --- 552 | 553 | Link টা এমন হবে 554 | 555 | ``` 556 | http://127.0.0.1:53682/?state=VQ99iErCu78A8OCLfTHXjg&code=4/0AQSTgQEhhRZ8gaPYFtM3teE_71FhKXF0iPn6DEUyiUn5h_sHtfLtUiVQyY1Iy0MwhyWxXw&scope=https://www.googleapis.com/auth/drive 557 | ``` 558 | 559 | --- 560 | 561 | 6. সেটিংস সেভ করুন: 562 | - `y` চাপুন (Yes) 563 | 564 | --- 565 | 566 | ### **Step 3: ব্যাকআপ স্ক্রিপ্টে Google Drive আপলোড যুক্ত করুন** 567 | 568 | `backup.sh` ফাইল খুলুন: 569 | 570 | ```bash 571 | nano ~/backup.sh 572 | ``` 573 | 574 | নিচের লাইনটি স্ক্রিপ্টের **শেষে** যুক্ত করুন: 575 | 576 | ```bash 577 | rclone copy "$BACKUP_DIR" gdrive:MongoDB_Backups 578 | ``` 579 | 580 | এটি আপনার ব্যাকআপ ফাইল **Google Drive-এর "MongoDB_Backups" ফোল্ডারে** আপলোড করবে। 581 | 582 | --- 583 | 584 | ### **Step 4: ম্যানুয়ালি আপলোড পরীক্ষা করুন** 585 | 586 | ```bash 587 | ./backup.sh 588 | ``` 589 | 590 | তারপর Google Drive-এ **MongoDB_Backups** ফোল্ডারে গিয়ে দেখুন ফাইল এসেছে কিনা। 591 | 592 | --- 593 | 594 | ### **Step 5: Cron Job আপডেট করুন (Auto Upload)** 595 | 596 | ```bash 597 | crontab -e 598 | ``` 599 | 600 | নিচের লাইনটি যোগ করুন: 601 | 602 | ```bash 603 | 0 8 * * * /home/your_user/backup.sh >> /home/your_user/backup.log 2>&1 604 | 0 20 * * * /home/your_user/backup.sh >> /home/your_user/backup.log 2>&1 605 | ``` 606 | 607 | এতে **প্রতিদিন ২ বার** ব্যাকআপ নিয়ে **Google Drive-এ আপলোড** হবে। 608 | 609 | --- 610 | 611 |
612 |
613 |
614 |
615 | 616 | # **AWS S3-তে MongoDB Backup আপলোড করা** 617 | 618 | AWS S3-তে MongoDB ব্যাকআপ আপলোড করার জন্য **AWS CLI** ব্যবহার করবো। 619 | 620 | --- 621 | 622 | ### **Step 1: AWS CLI ইন্সটল করুন** 623 | 624 | VPS-এর টার্মিনালে রান করুন: 625 | 626 | ```bash 627 | sudo apt update && sudo apt install awscli -y 628 | ``` 629 | 630 | --- 631 | 632 | ### **Step 2: AWS Credentials সেটআপ করুন** 633 | 634 | ```bash 635 | aws configure 636 | ``` 637 | 638 | এখন **AWS Access Key & Secret Key দিন** (আপনার AWS IAM Console থেকে নিতে হবে)। 639 | 640 | - Access Key: `your_aws_access_key` 641 | - Secret Key: `your_aws_secret_key` 642 | - Region: `ap-southeast-1` (বাংলাদেশের জন্য Singapore) 643 | - Output Format: `json` 644 | 645 | --- 646 | 647 | ### **Step 3: S3-তে ব্যাকআপ আপলোড যুক্ত করুন** 648 | 649 | `backup.sh` স্ক্রিপ্ট আপডেট করুন: 650 | 651 | ```bash 652 | nano ~/backup.sh 653 | ``` 654 | 655 | নিচের লাইনটি স্ক্রিপ্টের **শেষে** যুক্ত করুন: 656 | 657 | ```bash 658 | aws s3 cp --recursive "$BACKUP_DIR" s3://your-bucket-name/mongodb_backups/ 659 | ``` 660 | 661 | ⚠️ **your-bucket-name** পরিবর্তন করে **আপনার S3 bucket name দিন**। 662 | 663 | --- 664 | 665 | ### **Step 4: ম্যানুয়ালি আপলোড পরীক্ষা করুন** 666 | 667 | ```bash 668 | ./backup.sh 669 | ``` 670 | 671 | তারপর **AWS S3 console**-এ গিয়ে চেক করুন, ব্যাকআপ ফাইল আপলোড হয়েছে কিনা। 672 | 673 | --- 674 | 675 | ### **Step 5: Cron Job আপডেট করুন (Auto Upload to S3)** 676 | 677 | ```bash 678 | crontab -e 679 | ``` 680 | 681 | নিচের লাইনটি যোগ করুন: 682 | 683 | ```bash 684 | 0 8 * * * /home/your_user/backup.sh >> /home/your_user/backup.log 2>&1 685 | 0 20 * * * /home/your_user/backup.sh >> /home/your_user/backup.log 2>&1 686 | ``` 687 | 688 | এতে **প্রতিদিন ২ বার** ব্যাকআপ নিয়ে **AWS S3-তে আপলোড** হবে। 689 | 690 | --- 691 | 692 | ## **Final Result:** 693 | 694 | ✅ MongoDB-এর ব্যাকআপ **VPS-এ সংরক্ষণ** হবে 695 | ✅ **Google Drive / AWS S3**-তে **Auto Upload** হবে 696 | ✅ পুরনো **৭ দিনের ব্যাকআপ অটোমেটিক ডিলিট** হবে 697 | 698 | --- 699 | --------------------------------------------------------------------------------