4.7 KiB
4.7 KiB
超星数据同步定时任务配置说明
📋 概述
本目录包含超星数据同步的定时任务配置,用于每天晚上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
⚠️ 注意事项
- 路径问题: 确保
crontab_config.txt中的路径是绝对路径 - 权限问题: 确保
run_script.sh有执行权限 - Python环境: 确保cron执行时能找到正确的Python解释器
- 日志目录: 确保有权限创建和写入日志目录
- 网络连接: 确保服务器能访问超星API接口
- 数据库连接: 确保数据库配置正确且可访问
🐛 故障排查
问题1: 脚本未执行
检查步骤:
- 查看cron日志:
tail -f /var/log/cron.log(Linux) 或系统日志 (macOS) - 检查crontab任务:
crontab -l - 检查脚本权限:
ls -l run_script.sh - 手动执行测试:
./run_script.sh 请求系部信息API
问题2: 脚本执行失败
检查步骤:
- 查看错误日志:
tail -f logs/*_error_*.log - 查看标准日志:
tail -f logs/*.log - 检查Python环境:
which python3 - 检查依赖包:
pip3 list | grep -E "pymysql|requests|pycryptodome"
问题3: 日志文件未生成
检查步骤:
- 检查目录权限:
ls -ld logs/ - 检查磁盘空间:
df -h - 手动创建日志目录:
mkdir -p logs/
📝 更新记录
- 2025-01-03: 初始版本,创建定时任务配置