111 lines
2.7 KiB
Bash
Executable File
111 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
||
# 热点股追踪数据导出/导入快捷脚本
|
||
|
||
set -e
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||
PYTHON_SCRIPT="$SCRIPT_DIR/export_hotspot_data.py"
|
||
|
||
# 颜色输出
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
show_help() {
|
||
echo "用法:"
|
||
echo " $0 export [日期] - 导出指定日期的数据(默认:2026-08-20)"
|
||
echo " $0 import <文件> - 导入数据文件"
|
||
echo " $0 list - 列出所有有数据的日期"
|
||
echo " $0 backup - 备份整个数据库"
|
||
echo ""
|
||
echo "示例:"
|
||
echo " $0 export 2026-08-20"
|
||
echo " $0 import hotspot_2026-08-20.json"
|
||
echo " $0 backup"
|
||
}
|
||
|
||
export_data() {
|
||
local date="${1:-2026-08-20}"
|
||
local output_file="hotspot_${date}.json"
|
||
|
||
echo -e "${YELLOW}📤 导出 $date 的热点股数据...${NC}"
|
||
python3 "$PYTHON_SCRIPT" export --date "$date" --output "$output_file"
|
||
|
||
if [ -f "$output_file" ]; then
|
||
echo -e "${GREEN}✅ 导出完成:$output_file${NC}"
|
||
echo "文件大小:$(du -h "$output_file" | cut -f1)"
|
||
else
|
||
echo -e "${RED}❌ 导出失败${NC}"
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
import_data() {
|
||
local file="$1"
|
||
|
||
if [ -z "$file" ]; then
|
||
echo -e "${RED}❌ 请指定要导入的文件${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
if [ ! -f "$file" ]; then
|
||
echo -e "${RED}❌ 文件不存在:$file${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
echo -e "${YELLOW}📥 导入数据:$file${NC}"
|
||
python3 "$PYTHON_SCRIPT" import --file "$file"
|
||
}
|
||
|
||
list_dates() {
|
||
echo -e "${YELLOW}📅 列出数据库中的日期...${NC}"
|
||
python3 "$PYTHON_SCRIPT" list
|
||
}
|
||
|
||
backup_database() {
|
||
local db_path="$PROJECT_DIR/backend/data/stock_data.db"
|
||
local backup_dir="$PROJECT_DIR/backups"
|
||
local timestamp=$(date +%Y%m%d_%H%M%S)
|
||
local backup_file="$backup_dir/stock_data_${timestamp}.db"
|
||
|
||
if [ ! -f "$db_path" ]; then
|
||
echo -e "${RED}❌ 数据库文件不存在:$db_path${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
# 创建备份目录
|
||
mkdir -p "$backup_dir"
|
||
|
||
# 复制数据库
|
||
cp "$db_path" "$backup_file"
|
||
|
||
if [ -f "$backup_file" ]; then
|
||
echo -e "${GREEN}✅ 数据库备份完成:$backup_file${NC}"
|
||
echo "文件大小:$(du -h "$backup_file" | cut -f1)"
|
||
else
|
||
echo -e "${RED}❌ 备份失败${NC}"
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
# 主逻辑
|
||
case "${1:-help}" in
|
||
export)
|
||
export_data "$2"
|
||
;;
|
||
import)
|
||
import_data "$2"
|
||
;;
|
||
list)
|
||
list_dates
|
||
;;
|
||
backup)
|
||
backup_database
|
||
;;
|
||
*)
|
||
show_help
|
||
;;
|
||
esac
|