Python Bot 部署与运维完全指南

本指南将详细介绍如何在 Ubuntu 服务器上实现加密货币监控机器人的一键部署自动守护以及日常运维。通过该方案,机器人可在服务器重启或程序崩溃后秒级自动恢复。

一、 核心部署脚本 (deploy.sh)

进入你的项目目录(例如 /root/project/crypto-bot),创建该脚本并运行。脚本会自动识别当前路径,无需手动修改代码。

#!/bin/bash

# ==========================================
# Crypto Monitor Bot 一键部署脚本 (Ubuntu)
# ==========================================

# 获取当前绝对路径
PROJECT_PATH=$(pwd)
SERVICE_NAME="crypto_bot"
PYTHON_BIN="$PROJECT_PATH/venv/bin/python3"

echo "🚀 开始部署项目至: $PROJECT_PATH"

# 1. 更新系统并安装必要工具
echo "📦 正在安装系统依赖..."
sudo apt update && sudo apt install -y python3-pip python3-venv

# 2. 创建并初始化虚拟环境
if [ ! -d "venv" ]; then
    echo "创建虚拟环境..."
    python3 -m venv venv
fi

# 3. 安装 Python 依赖
echo "📥 正在安装 Python 依赖库..."
$PROJECT_PATH/venv/bin/pip install --upgrade pip
$PROJECT_PATH/venv/bin/pip install -r requirements.txt

# 4. 创建 Systemd 服务文件
echo "⚙️ 正在配置 Systemd 守护进程..."
sudo cat <<EOF > /etc/systemd/system/$SERVICE_NAME.service
[Unit]
Description=Crypto Monitor Bot Service
After=network.target

[Service]
User=root
WorkingDirectory=$PROJECT_PATH
ExecStart=$PYTHON_BIN main.py
Environment=PYTHONUNBUFFERED=1
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

# 5. 启动服务并设置开机自启
echo "🔄 正在启动服务..."
sudo systemctl daemon-reload
sudo systemctl enable $SERVICE_NAME
sudo systemctl restart $SERVICE_NAME

echo "✅ 部署完成!"

二、 部署三部曲

  1. 赋予权限: chmod +x deploy.sh
  2. 上传配置: 确保 .env 文件已放置在当前目录。
  3. 执行部署: ./deploy.sh

三、 日常运维指令表

部署完成后,请使用以下 systemctl 指令管理机器人:

操作内容 具体指令
启动服务 sudo systemctl start crypto_bot
停止服务 sudo systemctl stop crypto_bot
重新启动 sudo systemctl restart crypto_bot
查看运行状态 sudo systemctl status crypto_bot
查看实时日志 journalctl -u crypto_bot -f

sudo systemctl disable crypto_bot # 取消开机自启

四、 专家提示

  • 路径无关性: 该脚本通过 $(pwd) 自动获取路径,这意味着你可以将其移动到任何目录(如 /root/project/bot2)重新运行脚本,它会自动更新服务配置。
  • 多实例运行: 若要在同一台机器运行多个机器人,只需修改脚本中的 SERVICE_NAME 变量(例如改为 crypto_bot_test),即可创建独立的服务。
  • Python 缓存: 脚本中开启了 PYTHONUNBUFFERED=1,这确保了你在查看日志时不会有延迟。
滚动至顶部