Files
auv/scripts/hotspot_backup.sh
T

111 lines
2.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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