Automated backup - 20250729_000001

This commit is contained in:
Will Song
2025-07-29 00:00:01 -05:00
parent 72ad0439f5
commit ff8796555d
41 changed files with 277 additions and 2769 deletions

78
startup_docker_services.sh Executable file
View File

@@ -0,0 +1,78 @@
#!/bin/bash
# Docker 服务开机后启动脚本
# 用于在系统启动后自动启动所有 Docker 服务
echo "$(date): 开始启动 Docker 服务..." | tee -a /var/log/docker-startup.log
# 等待 Docker 守护进程启动
echo "$(date): 等待 Docker 守护进程启动..." | tee -a /var/log/docker-startup.log
while ! docker info >/dev/null 2>&1; do
echo "$(date): Docker 守护进程尚未就绪等待5秒..." | tee -a /var/log/docker-startup.log
sleep 5
done
echo "$(date): Docker 守护进程已就绪" | tee -a /var/log/docker-startup.log
# Docker 服务目录列表(按优先级排序)
DOCKER_DIRS=(
"/home/will/docker/caddy" # 反向代理,最先启动
"/home/will/docker/vault" # 密码管理
"/home/will/docker/HA" # Home Assistant
"/home/will/docker/clove" # 文件管理
"/home/will/docker/navidrome" # 音乐服务
"/home/will/docker/jellyfin" # 媒体服务
"/home/will/docker/1panel" # 管理面板
"/home/will/docker/silly" # AI 对话
"/home/will/docker/discord_bot" # Discord 主机器人
"/home/will/docker/discord_bot/ai_bots" # AI 机器人(如果需要)
"/home/will/docker/adwireguard" # VPN 服务
# "/home/will/docker/backtest" # 回测服务 - 手动启动
)
# 函数:启动 Docker Compose 服务
start_docker_service() {
local dir="$1"
if [[ -f "$dir/docker-compose.yml" ]]; then
echo "$(date): 启动服务: $dir" | tee -a /var/log/docker-startup.log
cd "$dir"
# 使用 timeout 防止卡住adwireguard 需要更长时间
if [[ "$dir" == *"adwireguard"* ]]; then
timeout 180 docker compose up -d
else
timeout 120 docker compose up -d
fi
if [[ $? -eq 0 ]]; then
echo "$(date): 成功启动: $dir" | tee -a /var/log/docker-startup.log
else
echo "$(date): 启动失败或超时: $dir" | tee -a /var/log/docker-startup.log
fi
else
echo "$(date): 跳过 (无 docker-compose.yml): $dir" | tee -a /var/log/docker-startup.log
fi
}
# 启动所有服务
for dir in "${DOCKER_DIRS[@]}"; do
if [[ -d "$dir" ]]; then
start_docker_service "$dir"
else
echo "$(date): 目录不存在: $dir" | tee -a /var/log/docker-startup.log
fi
# 每个服务之间等待5秒让服务有时间启动
sleep 5
done
# 清理未使用的资源
echo "$(date): 清理未使用的Docker资源..." | tee -a /var/log/docker-startup.log
docker image prune -f
echo "$(date): Docker 服务启动完成" | tee -a /var/log/docker-startup.log
# 显示运行状态
echo "$(date): 当前运行的容器:" | tee -a /var/log/docker-startup.log
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | tee -a /var/log/docker-startup.log