从 CCTV 主页抓取《新闻联播》,下载 → 转 MP3/WAV → 静音切分 → ASR 识别 → LLM 校对 → 切分为单条新闻 → 入库 MySQL。 主要内容: - 全链路:getVideo5 抓取下载、audioRead 转写、deepseek 校对与切分、newsProcess 入库 - 可移植化:配置分层,.env 只放密钥、config.yml 放模型/接入点/路由/参数 - 可换供应商:endpoints(kind/base_url/api_key_env/extra_body)+ routes 按环节选路 - 数据保真:数值事实守卫,校对改动数字/年份/届次则整片回退 ASR 原文; 识别不完整不发布该日精编,避免半天内容被当成完整一天 - 定时任务:systemd 每天 21:00,失败 21:30 / 22:00 重试; 只缺切分时只重跑切分(省掉全部 ASR),用 state/.asr_complete_* 标记判定阶段 - 隧道自愈:13306 不通时自动执行 autossh.sh(所有入口共用,systemd 托管时只等待) - 中间产物每日清理;97 项离线自检(配置/清理/事实守卫/解析/隧道)
51 lines
1.9 KiB
Bash
Executable File
51 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# 安装/更新 systemd 定时任务(需要 sudo;幂等,可反复执行)
|
||
#
|
||
# bash scripts/install_systemd.sh
|
||
#
|
||
# 做四件事:
|
||
# 1) 把 systemd/*.{service,timer} 装到 /etc/systemd/system/
|
||
# 2) 启用并启动 xwlb-daily.timer(每天 21:00 触发)
|
||
# 3) 启用 xwlb-tunnel.service(autossh 隧道,随开机自启)
|
||
# 4) 打印下一次触发时间
|
||
set -euo pipefail
|
||
|
||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||
SUDO=""
|
||
if [ "$(id -u)" -ne 0 ]; then SUDO="sudo"; fi
|
||
|
||
echo "== 1/4 安装单元文件 =="
|
||
for unit in xwlb-daily.service xwlb-daily.timer xwlb-tunnel.service; do
|
||
$SUDO install -m 0644 "$DIR/systemd/$unit" "/etc/systemd/system/$unit"
|
||
echo " $unit"
|
||
done
|
||
|
||
echo "== 2/4 daemon-reload =="
|
||
$SUDO systemctl daemon-reload
|
||
|
||
echo "== 3/4 启用定时器 =="
|
||
$SUDO systemctl enable --now xwlb-daily.timer >/dev/null
|
||
echo " xwlb-daily.timer 已启用"
|
||
|
||
echo "== 4/4 隧道服务 =="
|
||
if ss -ltn 2>/dev/null | grep -q '127.0.0.1:13306'; then
|
||
if systemctl is-active --quiet xwlb-tunnel.service; then
|
||
$SUDO systemctl restart xwlb-tunnel.service
|
||
echo " xwlb-tunnel.service 已重启"
|
||
else
|
||
echo " ⚠️ 13306 已被**非 systemd 托管**的 autossh 占用,暂不启用隧道服务。"
|
||
echo " 想改由 systemd 托管(可开机自启、断了自动重连)请执行:"
|
||
echo " pkill -f 'autossh.*13306' && sudo systemctl enable --now xwlb-tunnel.service"
|
||
fi
|
||
else
|
||
$SUDO systemctl enable --now xwlb-tunnel.service >/dev/null
|
||
echo " xwlb-tunnel.service 已启用"
|
||
fi
|
||
|
||
echo
|
||
echo "== 下一次触发时间 =="
|
||
systemctl list-timers xwlb-daily.timer --no-pager || true
|
||
echo
|
||
echo "查看日志: journalctl -u xwlb-daily -f (也可看 $DIR/main.log)"
|
||
echo "立即试跑: sudo systemctl start xwlb-daily.service"
|
||
echo "临时停用: sudo systemctl disable --now xwlb-daily.timer" |