106 lines
3.4 KiB
Bash
106 lines
3.4 KiB
Bash
|
|
#!/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 ""
|