我们一直在努力

部署bot记录

1、安装依赖

   pip install pyTelegramBotAPI pymysql

2、创建数据库
   SQL:
   CREATE DATABASE bot_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3、修改配置
   TOKEN:机器人 Token
   ADMIN_ID:你的 Telegram ID
   DB_CONFIG:数据库账号密码
运行:
   python bot.py

二、生成 systemd 服务 让机器人后台运行

1、nano /etc/systemd/system/bot.service

  粘贴以下内容:
  [Unit]
  Description=Telegram PanLink Bot
  Documentation=https://t.me/yourbot
  After=network-online.target mariadb.service
  Wants=network-online.target

  [Service]
  Type=simple
  User=root
  WorkingDirectory=/root
  ExecStart=/usr/bin/python3 /root/bot.py
  Restart=always
  RestartSec=5
  TimeoutStopSec=10
  KillMode=mixed

  # 防止日志爆炸
  StandardOutput=journal
  StandardError=journal

  [Install]
  WantedBy=multi-user.target

需要你确认 2 个地方:

  • WorkingDirectory=/root → 改成你 bot.py 所在目录
  • ExecStart=/usr/bin/python3 /root/bot.py → 确保路径正确

2. 启用并启动服务
systemctl daemon-reload

systemctl enable bot

systemctl start bot

3. 查看状态与日志
# 状态 systemctl status bot

# 实时日志 journalctl -u bot -f

# 重启 systemctl restart bot

# 停止 systemctl stop bot

4. 如果你用的不是 root 运行

User=root 改成你的普通用户即可,例如:User=debian

三、数据库自动备份脚本

1. 创建备份脚本
nano /usr/local/bin/mysql_backup.sh


把下面内容完整粘贴进去:
#!/bin/bash # 数据库配置

DB_USER=”root”

DB_PASS=”你的数据库密码”

DB_NAME=”telebot_db” BACKUP_DIR=”/backup/mysql”

# 日期格式

DATE=$(date +%Y-%m-%d_%H-%M-%S)

BACKUP_FILE=”$BACKUP_DIR/${DB_NAME}_$DATE.sql.gz”

# 创建备份目录

mkdir -p “$BACKUP_DIR”

# 备份并压缩

mariadb-dump -u”$DB_USER” -p”$DB_PASS” –databases “$DB_NAME” | gzip > “$BACKUP_FILE”

# 删除7天前的备份

find “$BACKUP_DIR” -type f -name “*.sql.gz” -mtime +7 -delete

只改这 3 处:

  • DB_PASS="你的数据库密码"
  • DB_NAME="bot_db"(和你 bot 里的库名一致)
  • 其他不用动

2. 赋予执行权限
chmod +x /usr/local/bin/mysql_backup.sh

3. 测试一次备份(重要)
/usr/local/bin/mysql_backup.sh

执行完去看有没有生成文件:

ls /backup/mysql/

4. 设置每天凌晨 2 点自动备份(crontab)
crontab -e
在最后添加一行:
0 2 * * * /usr/local/bin/mysql_backup.sh


保存退出。


5. 查看备份是否生效
# 看定时任务是否添加成功

crontab -l

# 看备份文件

ls -lh /backup/mysql/

6. 恢复数据库的命令(备用)
gunzip < /backup/mysql/telebot_db_xxx.sql.gz | mariadb -uroot -p密码 telebot_db

四、备份好上传到Tg

1. 先安装发送工具(curl 一般已自带)
apt update && apt install -r curl gzip

2. 新建备份 + 发 TG 脚本
nano /usr/local/bin/mysql_backup_tg.sh
粘贴下面内容,只改配置区即可直接用:
#!/bin/bash

# ===================== 配置区(必须改)=====================

# 数据库信息

DB_USER=”root”

DB_PASS=”你的数据库密码”

DB_NAME=”telebot_db”

# 备份存放目录

BACKUP_DIR=”/backup/mysql”

# Telegram 配置

TG_BOT_TOKEN=”你的机器人Token”

TG_CHAT_ID=”你的聊天ID/群组ID”

# ==========================================================

# 日期与文件名

DATE=$(date +%Y-%m-%d_%H-%M-%S) BACKUP_FILE=”$BACKUP_DIR/${DB_NAME}_$DATE.sql.gz”

# 创建目录

mkdir -p “$BACKUP_DIR”

# 备份数据库并压缩

mariadb-dump -u”$DB_USER” -p”$DB_PASS” –databases “$DB_NAME” | gzip >”$BACKUP_FILE”

# 发送到 Telegram

curl -F “chat_id=$TG_CHAT_ID” \

-F “document=@$BACKUP_FILE” \

-F “caption=✅ 数据库自动备份完成

📅 时间:$DATE

🗄 库名:$DB_NAME” \ https://api.telegram.org/bot$TG_BOT_TOKEN/sendDocument

# 删除7天前的备份

find “$BACKUP_DIR” -type f -name “*.sql.gz” -mtime +7 -delete


3. 赋予执行权限
chmod +x /usr/local/bin/mysql_backup_tg.sh

4. 测试运行一次(看是否能收到备份文件)
/usr/local/bin/mysql_backup_tg.sh

正常情况:

本地 /backup/mysql/ 出现 .sql.gz

你的 Tg 会收到文件 + 标题

5. 设置每天凌晨 2 点自动执行
crontab -e
添加一行:

0 2 * * * /usr/local/bin/mysql_backup_tg.sh

查看任务:crontab -l


6. 如何获取 TG_CHAT_ID
给机器人发任意消息,然后浏览器访问:
https://api.telegram.org/bot你的Token/getUpdates

找到 chat id 数字就是。


7. 配套你之前的 systemd 服务

systemctl status bot

journalctl -u bot -f

赞(0) 打赏
未经允许不得转载:Hi Fob » 部署bot记录

相关推荐

  • 暂无文章

评论 抢沙发

更好的WordPress主题

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册