একদম ঠিক দিকেই যাচ্ছিস ভাই! এখন তোর প্রয়োজন হচ্ছে:
- ✅ Node.js ও PM2 এর লোকেশন বের করা
- ✅
pm2দিয়ে স্ক্রিপ্ট চালানো - ✅
crontabদিয়ে সঠিক সময়ে স্টার্ট/স্টপ করা
আমি একদম ধাপে ধাপে দেখাচ্ছি:
🟦 STEP 1: Node.js এর লোকেশন বের করা
which node
উদাহরণ output:
/root/.nvm/versions/node/v18.20.8/bin/node
➡️ এখন PM2 এর path বের করো:
which pm2
উদাহরণ output:
/root/.nvm/versions/node/v18.20.8/bin/pm2
📌 এই path-ই crontab-এ ব্যবহার করতে হবে।
🟦 STEP 2: pm2 দিয়ে Node.js স্ক্রিপ্ট চালানো
ধরো index.js আছে /root/massdmbot ফোল্ডারে। চালাও:
cd /root/massdmbot
pm2 start index.js --name massdmbot
➡️ এখানে massdmbot হলো pm2 process name
✅ Check:
pm2 list
🟦 STEP 3: PM2 Cron Setup
crontab -e
🟩 এখন নিচের মতো দুটি লাইন লিখো (সময় ও path adjust করে):
# ✅ SMART START massdmbot at 12:00 PM (Dutch Time = 8:00 AM BD Time)
0 8 * * * /root/.nvm/versions/node/v18.20.8/bin/pm2 show massdmbot | grep online || /root/.nvm/versions/node/v18.20.8/bin/pm2 start massdmbot >> /root/massdmbot-start.log 2>&1
# 🛑 STOP massdmbot at 11:00 PM (Dutch Time = 5:00 AM BD Time)
0 5 * * * /root/.nvm/versions/node/v18.20.8/bin/pm2 stop massdmbot >> /root/massdmbot-stop.log 2>&1
📝 মানে:
- প্রতিদিন ৮টা (বাংলাদেশ সময়) বট চালাবে
- প্রতিদিন ৫টা (বাংলাদেশ সময়) বন্ধ করবে
🟦 STEP 4: crontab সময় চেক ও কনফার্ম করো
date
➡️ দেখে নাও VPS-এর লোকাল টাইম জোন সঠিক কিনা।
প্রয়োজনে টাইমজোন সেট করতে:
timedatectl list-timezones | grep Asia
sudo timedatectl set-timezone Asia/Dhaka
🟦 STEP 5: PM2 এর লগ চেক করো
pm2 logs massdmbot
অথবা নির্দিষ্ট ফাইল থেকে:
cat /root/massdmbot-start.log
cat /root/massdmbot-stop.log
✅ এখন তুই যা যা নিশ্চিত করবি:
pm2কাজ করছে ✅- স্ক্রিপ্ট
start,stopহচ্ছে ✅ which nodeওwhich pm2দিয়ে লোকেশন কপি ✅crontab -eতে সময় ঠিক ✅- টাইমজোন ঠিক আছে ✅
চাইলে আমি তোর জন্য একটা Ready-made crontab.sh স্ক্রিপ্ট বানিয়ে দিতে পারি! বললেই দিলাম ভাই 😎