delete_admin_log.sh 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/bash
  2. # 数据库连接信息
  3. DB_NAME="www_359844_cn"
  4. DB_USER="www_359844_cn"
  5. DB_PASSWORD="kdGSRtw4hy5HJAjc"
  6. DB_HOST="localhost"
  7. DB_PORT="3306"
  8. # 表名和条件
  9. TABLE_NAME="fa_admin_log"
  10. CONDITION="admin_id = 3"
  11. echo "开始删除数据库 $DB_NAME 中表 $TABLE_NAME 的数据..."
  12. echo "删除条件: $CONDITION"
  13. # 首先查询要删除的数据数量
  14. echo "查询要删除的数据数量..."
  15. COUNT_QUERY="SELECT COUNT(*) as count FROM $TABLE_NAME WHERE $CONDITION;"
  16. COUNT_RESULT=$(mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASSWORD $DB_NAME -e "$COUNT_QUERY" 2>/dev/null | tail -n 1)
  17. if [ $? -eq 0 ]; then
  18. echo "将要删除 $COUNT_RESULT 条数据"
  19. # 检查是否在交互式终端中运行
  20. if [ -t 0 ]; then
  21. # 交互式终端,询问用户确认
  22. echo "请确认是否删除这些数据?"
  23. echo "输入 'yes' 确认删除,输入其他内容取消操作:"
  24. read -r confirm
  25. if [[ "$confirm" == "yes" ]]; then
  26. CONFIRM_DELETE=true
  27. else
  28. CONFIRM_DELETE=false
  29. fi
  30. else
  31. # 非交互式终端,直接执行删除
  32. echo "非交互式终端,直接执行删除操作..."
  33. CONFIRM_DELETE=true
  34. fi
  35. if [ "$CONFIRM_DELETE" = true ]; then
  36. echo "正在执行删除操作..."
  37. # 执行删除操作
  38. DELETE_QUERY="DELETE FROM $TABLE_NAME WHERE $CONDITION;"
  39. mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASSWORD $DB_NAME -e "$DELETE_QUERY"
  40. if [ $? -eq 0 ]; then
  41. echo "删除成功!"
  42. # 验证删除结果
  43. VERIFY_QUERY="SELECT COUNT(*) as count FROM $TABLE_NAME WHERE $CONDITION;"
  44. VERIFY_RESULT=$(mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASSWORD $DB_NAME -e "$VERIFY_QUERY" 2>/dev/null | tail -n 1)
  45. echo "删除后剩余符合条件的记录数: $VERIFY_RESULT"
  46. else
  47. echo "删除失败!请检查数据库连接和权限。"
  48. exit 1
  49. fi
  50. else
  51. echo "操作已取消。"
  52. fi
  53. else
  54. echo "查询失败!请检查数据库连接信息。"
  55. exit 1
  56. fi