#!/bin/bash # 数据同步守护进程部署脚本(Linux systemd) echo "============================================================" echo "百家号数据同步守护进程 - 部署脚本" echo "含数据验证与短信告警功能" echo "============================================================" echo "" # 检查是否为root用户 if [ "$EUID" -ne 0 ]; then echo "[错误] 请使用root用户运行此脚本" echo " sudo bash deploy_daemon.sh" exit 1 fi # 项目目录(根据实际情况修改) PROJECT_DIR="/root/xhh_baijiahao" SERVICE_NAME="bjh_daemon" echo "[1/6] 检查项目目录..." if [ ! -d "$PROJECT_DIR" ]; then echo "[错误] 项目目录不存在: $PROJECT_DIR" exit 1 fi echo " 项目目录: $PROJECT_DIR" echo "" echo "[2/6] 检查Python依赖..." cd "$PROJECT_DIR" python3 -c "import schedule" 2>/dev/null if [ $? -ne 0 ]; then echo " 安装 schedule 模块..." pip3 install schedule fi python3 -c "from data_validation_with_sms import DataValidationWithSMS" 2>/dev/null if [ $? -ne 0 ]; then echo "[警告] 数据验证模块检查失败,请确保以下文件存在:" echo " - data_validation.py" echo " - data_validation_with_sms.py" echo " - sms_config.json" fi python3 -c "from alibabacloud_dysmsapi20170525.client import Client" 2>/dev/null if [ $? -ne 0 ]; then echo " 安装阿里云短信SDK..." pip3 install alibabacloud_dysmsapi20170525 alibabacloud_credentials alibabacloud_tea_openapi alibabacloud_tea_util fi echo "" echo "[3/6] 配置systemd服务..." # 复制服务文件 cp "$PROJECT_DIR/bjh_daemon.service" /etc/systemd/system/ chmod 644 /etc/systemd/system/bjh_daemon.service # 重新加载systemd配置 systemctl daemon-reload echo " 服务文件已安装: /etc/systemd/system/bjh_daemon.service" echo "" echo "[4/6] 配置短信告警..." if [ ! -f "$PROJECT_DIR/sms_config.json" ]; then echo "[警告] 未找到 sms_config.json,短信功能可能不可用" echo " 请创建配置文件: $PROJECT_DIR/sms_config.json" else echo " 短信配置文件已存在: sms_config.json" fi echo "" echo "[5/6] 启用并启动服务..." systemctl enable bjh_daemon.service systemctl start bjh_daemon.service # 等待2秒 sleep 2 echo "" echo "[6/6] 检查服务状态..." systemctl status bjh_daemon.service --no-pager echo "" echo "============================================================" echo "部署完成!" echo "============================================================" echo "" echo "常用命令:" echo " 查看状态: sudo systemctl status bjh_daemon" echo " 查看日志: sudo journalctl -u bjh_daemon -f" echo " 停止服务: sudo systemctl stop bjh_daemon" echo " 重启服务: sudo systemctl restart bjh_daemon" echo " 禁用服务: sudo systemctl disable bjh_daemon" echo "" echo "配置文件:" echo " systemd配置: /etc/systemd/system/bjh_daemon.service" echo " 短信配置: $PROJECT_DIR/sms_config.json" echo " 程序日志: $PROJECT_DIR/logs/data_sync_daemon.log" echo " 验证报告: $PROJECT_DIR/validation_reports/" echo "" echo "功能说明:" echo " 1. 每隔1小时自动执行数据同步(工作时间8:00-24:00)" echo " 2. 数据同步完成后自动验证数据完整性" echo " 3. 验证失败时自动发送短信告警(错误代码2222)" echo " 4. 非工作时间自动休眠" echo ""