install_crontab.sh 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/bin/bash
  2. # 超星数据同步定时任务安装脚本
  3. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  4. cd "$SCRIPT_DIR" || exit 1
  5. echo "=========================================="
  6. echo "超星数据同步定时任务安装"
  7. echo "=========================================="
  8. echo ""
  9. # 检查run_script.sh是否存在
  10. if [ ! -f "$SCRIPT_DIR/run_script.sh" ]; then
  11. echo "错误: 未找到 run_script.sh 文件"
  12. exit 1
  13. fi
  14. # 赋予执行权限
  15. echo "步骤1: 赋予执行权限..."
  16. chmod +x "$SCRIPT_DIR/run_script.sh"
  17. echo "✓ 执行权限已设置"
  18. echo ""
  19. # 创建日志目录
  20. echo "步骤2: 创建日志目录..."
  21. mkdir -p "$SCRIPT_DIR/logs"
  22. echo "✓ 日志目录已创建: $SCRIPT_DIR/logs"
  23. echo ""
  24. # 测试脚本执行
  25. echo "步骤3: 测试脚本启动器..."
  26. if bash "$SCRIPT_DIR/run_script.sh" --help 2>/dev/null; then
  27. echo "✓ 脚本启动器测试通过"
  28. else
  29. echo "⚠ 脚本启动器测试未通过,但继续安装..."
  30. fi
  31. echo ""
  32. # 备份现有crontab
  33. echo "步骤4: 备份现有crontab配置..."
  34. if crontab -l > "$SCRIPT_DIR/crontab_backup_$(date +%Y%m%d_%H%M%S).txt" 2>/dev/null; then
  35. echo "✓ 已备份现有crontab配置"
  36. else
  37. echo "⚠ 未找到现有crontab配置(首次安装)"
  38. fi
  39. echo ""
  40. # 安装新的crontab配置
  41. echo "步骤5: 安装crontab配置..."
  42. if crontab "$SCRIPT_DIR/crontab_config.txt"; then
  43. echo "✓ crontab配置已安装"
  44. else
  45. echo "✗ crontab配置安装失败"
  46. exit 1
  47. fi
  48. echo ""
  49. # 显示当前crontab任务
  50. echo "步骤6: 验证安装..."
  51. echo "当前crontab任务列表:"
  52. echo "----------------------------------------"
  53. crontab -l | grep -E "(请求|# 执行时间表|# 第一个|# 第二个|# 第三个|# 第四个|# 第五个)" || crontab -l
  54. echo "----------------------------------------"
  55. echo ""
  56. echo "=========================================="
  57. echo "安装完成!"
  58. echo "=========================================="
  59. echo ""
  60. echo "执行时间表:"
  61. echo " 00:00 - 请求系部信息API.py"
  62. echo " 00:05 - 请求专业信息API.py"
  63. echo " 00:10 - 请求班级信息API.py"
  64. echo " 00:15 - 请求学生信息API.py"
  65. echo " 00:20 - 请求学籍异动信息API.py"
  66. echo ""
  67. echo "日志文件位置: $SCRIPT_DIR/logs/"
  68. echo ""
  69. echo "常用命令:"
  70. echo " 查看crontab任务: crontab -l"
  71. echo " 编辑crontab任务: crontab -e"
  72. echo " 查看日志: tail -f $SCRIPT_DIR/logs/*.log"
  73. echo ""
  74. echo "详细说明请查看: README_定时任务.md"
  75. echo ""