VPS

⌘K
  1. Home
  2. VPS
  3. Ubuntu
  4. Node.js ও PM2 ০ crontab

Node.js ও PM2 ০ crontab

একদম ঠিক দিকেই যাচ্ছিস ভাই! এখন তোর প্রয়োজন হচ্ছে:

  1. Node.js ও PM2 এর লোকেশন বের করা
  2. pm2 দিয়ে স্ক্রিপ্ট চালানো
  3. 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 nodewhich pm2 দিয়ে লোকেশন কপি ✅
  • crontab -e তে সময় ঠিক ✅
  • টাইমজোন ঠিক আছে ✅

চাইলে আমি তোর জন্য একটা Ready-made crontab.sh স্ক্রিপ্ট বানিয়ে দিতে পারি! বললেই দিলাম ভাই 😎

Articles

How can we help?