zlwu 1e6dcb164c 提交 1 maand geleden
..
__pycache__ 7d4bfaecb3 提交 11 maanden geleden
API的APPid和key.md 7d4bfaecb3 提交 11 maanden geleden
README_定时任务.md 7d4bfaecb3 提交 11 maanden geleden
crontab_config.txt 7d4bfaecb3 提交 11 maanden geleden
db_config.py 1e6dcb164c 提交 1 maand geleden
install_crontab.sh 7d4bfaecb3 提交 11 maanden geleden
requirements.txt 7d4bfaecb3 提交 11 maanden geleden
run_script.sh 7d4bfaecb3 提交 11 maanden geleden
sys_dept.sql 7d4bfaecb3 提交 11 maanden geleden
test_crontab.sh 7d4bfaecb3 提交 11 maanden geleden
专业数据api.docx 7d4bfaecb3 提交 11 maanden geleden
修复表结构.sql 7d4bfaecb3 提交 11 maanden geleden
修复说明.md 4e34c7eb36 提交 11 maanden geleden
学生基本信息api.docx 7d4bfaecb3 提交 11 maanden geleden
学籍异动数据api.docx 7d4bfaecb3 提交 11 maanden geleden
教师基本信息数据api.docx 7d4bfaecb3 提交 11 maanden geleden
班级数据api.docx 7d4bfaecb3 提交 11 maanden geleden
系部数据api.docx 7d4bfaecb3 提交 11 maanden geleden
请求专业信息API.py 7d4bfaecb3 提交 11 maanden geleden
请求学生信息API.py 4e34c7eb36 提交 11 maanden geleden
请求学籍异动信息API.py 7d4bfaecb3 提交 11 maanden geleden
请求班级信息API.py 7d4bfaecb3 提交 11 maanden geleden
请求系部信息API.py 4e34c7eb36 提交 11 maanden geleden
超星的数据.sql 7d4bfaecb3 提交 11 maanden geleden

README_定时任务.md

超星数据同步定时任务配置说明

📋 概述

本目录包含超星数据同步的定时任务配置,用于每天晚上12点开始自动执行数据同步脚本,每个脚本间隔5分钟执行。

🕐 执行时间表

时间 脚本 说明
00:00 请求系部信息API.py 同步系部数据
00:05 请求专业信息API.py 同步专业数据
00:10 请求班级信息API.py 同步班级数据
00:15 请求学生信息API.py 同步学生数据
00:20 请求学籍异动信息API.py 同步学籍异动数据

📁 文件说明

1. crontab_config.txt

  • 说明: crontab定时任务配置文件
  • 内容: 包含5个定时任务配置,每个任务对应一个数据同步脚本

2. run_script.sh

  • 说明: 脚本启动器,用于执行Python脚本并记录日志
  • 功能:
    • 自动切换到脚本目录
    • 创建日志目录
    • 记录执行日志和错误日志
    • 按日期和脚本名生成日志文件

3. logs/ 目录

  • 说明: 日志文件存储目录(自动创建)
  • 日志文件格式:
    • 标准日志: {脚本名}_{日期}.log
    • 错误日志: {脚本名}_error_{日期}.log
    • Cron日志: cron_{脚本名}.log

🚀 安装步骤

步骤1: 赋予执行权限

cd /Users/wuzilong/work/00code/hzdyjs_xg/超星数据移植与定时同步
chmod +x run_script.sh

步骤2: 测试脚本执行

手动测试启动脚本是否正常工作:

# 测试执行系部信息脚本
./run_script.sh 请求系部信息API

# 查看日志
ls -lh logs/
tail -f logs/请求系部信息API_$(date +%Y%m%d).log

步骤3: 安装crontab配置

# 安装crontab配置
crontab crontab_config.txt

# 验证安装(查看当前crontab任务)
crontab -l

步骤4: 验证cron服务

确保cron服务正在运行:

# macOS系统
sudo launchctl list | grep cron

# 或者检查cron服务状态
ps aux | grep cron

📊 日志管理

查看日志

# 查看今天的系部信息同步日志
tail -f logs/请求系部信息API_$(date +%Y%m%d).log

# 查看错误日志
tail -f logs/请求系部信息API_error_$(date +%Y%m%d).log

# 查看cron执行日志
tail -f logs/cron_请求系部信息API.log

日志清理

建议定期清理旧日志文件(保留最近30天):

# 清理30天前的日志
find logs/ -name "*.log" -mtime +30 -delete

🔧 配置调整

修改执行时间

编辑 crontab_config.txt 文件,修改时间配置:

# crontab时间格式:分钟 小时 日 月 星期
# 例如:每天凌晨1点执行
0 1 * * * /bin/bash /path/to/run_script.sh 请求系部信息API

修改Python解释器

如果使用虚拟环境,编辑 run_script.sh 文件:

# 修改PYTHON_CMD变量
PYTHON_CMD="/path/to/venv/bin/python3"

修改日志路径

编辑 run_script.sh 文件中的 LOG_DIR 变量:

LOG_DIR="/path/to/custom/logs"

🛠️ 常用命令

查看当前crontab任务

crontab -l

编辑crontab任务

crontab -e

删除所有crontab任务

crontab -r

临时禁用某个任务

在 crontab_config.txt 中对应行前添加 # 注释,然后重新安装:

crontab crontab_config.txt

手动执行某个脚本

# 直接执行Python脚本
python3 请求系部信息API.py

# 或使用启动脚本
./run_script.sh 请求系部信息API

⚠️ 注意事项

  1. 路径问题: 确保 crontab_config.txt 中的路径是绝对路径
  2. 权限问题: 确保 run_script.sh 有执行权限
  3. Python环境: 确保cron执行时能找到正确的Python解释器
  4. 日志目录: 确保有权限创建和写入日志目录
  5. 网络连接: 确保服务器能访问超星API接口
  6. 数据库连接: 确保数据库配置正确且可访问

🐛 故障排查

问题1: 脚本未执行

检查步骤:

  1. 查看cron日志: tail -f /var/log/cron.log (Linux) 或系统日志 (macOS)
  2. 检查crontab任务: crontab -l
  3. 检查脚本权限: ls -l run_script.sh
  4. 手动执行测试: ./run_script.sh 请求系部信息API

问题2: 脚本执行失败

检查步骤:

  1. 查看错误日志: tail -f logs/*_error_*.log
  2. 查看标准日志: tail -f logs/*.log
  3. 检查Python环境: which python3
  4. 检查依赖包: pip3 list | grep -E "pymysql|requests|pycryptodome"

问题3: 日志文件未生成

检查步骤:

  1. 检查目录权限: ls -ld logs/
  2. 检查磁盘空间: df -h
  3. 手动创建日志目录: mkdir -p logs/

📝 更新记录

  • 2025-01-03: 初始版本,创建定时任务配置