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

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: 初始版本,创建定时任务配置