#!/bin/bash # 企业微信智能表格监控定时任务安装脚本 set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_PATH="$SCRIPT_DIR/wecom-smartsheet-monitor.js" CRON_JOB="* * * * * cd $SCRIPT_DIR && node wecom-smartsheet-monitor.js >> $SCRIPT_DIR/monitor.log 2>&1" echo "=== 企业微信智能表格监控定时任务安装 ===" echo "脚本目录: $SCRIPT_DIR" echo "脚本路径: $SCRIPT_PATH" echo "" # 检查 Node.js if ! command -v node &> /dev/null; then echo "❌ Node.js 未安装,请先安装 Node.js" exit 1 fi echo "✅ Node.js 已安装: $(node --version)" # 检查脚本文件 if [ ! -f "$SCRIPT_PATH" ]; then echo "❌ 监控脚本不存在: $SCRIPT_PATH" exit 1 fi echo "✅ 监控脚本存在: $SCRIPT_PATH" # 添加执行权限 chmod +x "$SCRIPT_PATH" echo "✅ 已添加执行权限" # 创建日志文件 touch "$SCRIPT_DIR/monitor.log" echo "✅ 已创建日志文件: $SCRIPT_DIR/monitor.log" # 检查配置 if [ ! -f "$SCRIPT_DIR/wecom-smartsheet-config.json" ]; then echo "⚠️ 配置文件不存在,将创建默认配置" cat > "$SCRIPT_DIR/wecom-smartsheet-config.json" << EOF { "statusTable": { "docid": "s3_ACgAkQbfAAYCN3DwvP9MnRP62HV4r", "sheet_id": "", "statusColumn": "状态", "idColumn": "加盟商ID" }, "scheduleTable": { "docid": "", "sheet_id": "", "idColumn": "加盟商ID" }, "statusValues": { "terminated": "签约后终止", "recontracted": "再次签约" } } EOF echo "⚠️ 请编辑 $SCRIPT_DIR/wecom-smartsheet-config.json 填写实际的 sheet_id 和其他配置" fi echo "" echo "=== 定时任务配置 ===" echo "Cron 表达式: * * * * * (每分钟执行一次)" echo "执行的命令: $CRON_JOB" echo "" # 询问是否安装定时任务 read -p "是否安装定时任务到当前用户的 crontab?(y/n): " -n 1 -r echo "" if [[ $REPLY =~ ^[Yy]$ ]]; then # 检查是否已有相同的定时任务 if crontab -l 2>/dev/null | grep -q "wecom-smartsheet-monitor.js"; then echo "⚠️ 已存在相同的定时任务,将先删除旧的" crontab -l 2>/dev/null | grep -v "wecom-smartsheet-monitor.js" | crontab - fi # 添加新的定时任务 (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab - if [ $? -eq 0 ]; then echo "✅ 定时任务安装成功!" echo "" echo "当前用户的 crontab:" crontab -l else echo "❌ 定时任务安装失败" exit 1 fi else echo "⏸️ 跳过定时任务安装" echo "" echo "您可以手动添加以下行到 crontab:" echo "$CRON_JOB" fi echo "" echo "=== 后续步骤 ===" echo "1. 编辑配置文件: $SCRIPT_DIR/wecom-smartsheet-config.json" echo "2. 填写实际的 sheet_id 和其他配置" echo "3. 确保企业微信机器人有文档访问权限" echo "4. 测试脚本: cd $SCRIPT_DIR && node wecom-smartsheet-monitor.js" echo "5. 查看日志: tail -f $SCRIPT_DIR/monitor.log" echo "" echo "安装完成!"