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

68
shutdown_docker_services.sh Executable file
View File

@@ -0,0 +1,68 @@
#!/bin/bash
# Docker 服务关机前停止脚本
# 用于在系统重启/关机前优雅地停止所有 Docker 服务
echo "$(date): 开始停止 Docker 服务..." | tee -a /var/log/docker-shutdown.log
# Docker 服务目录列表(除了 gitea
DOCKER_DIRS=(
"/home/will/docker/caddy"
"/home/will/docker/navidrome"
"/home/will/docker/jellyfin"
"/home/will/docker/1panel"
"/home/will/docker/silly"
"/home/will/docker/vault"
"/home/will/docker/HA"
"/home/will/docker/clove"
"/home/will/docker/discord_bot"
"/home/will/docker/discord_bot/ai_bots"
"/home/will/docker/adwireguard"
# "/home/will/docker/backtest" # 手动启动
)
# 函数:优雅停止 Docker Compose 服务
stop_docker_service() {
local dir="$1"
if [[ -f "$dir/docker-compose.yml" ]]; then
echo "$(date): 停止服务: $dir" | tee -a /var/log/docker-shutdown.log
cd "$dir"
# 使用 timeout 防止卡住
timeout 60 docker compose down
if [[ $? -eq 0 ]]; then
echo "$(date): 成功停止: $dir" | tee -a /var/log/docker-shutdown.log
else
echo "$(date): 停止失败或超时: $dir" | tee -a /var/log/docker-shutdown.log
# 强制停止
docker compose kill
fi
else
echo "$(date): 跳过 (无 docker-compose.yml): $dir" | tee -a /var/log/docker-shutdown.log
fi
}
# 停止所有服务
for dir in "${DOCKER_DIRS[@]}"; do
if [[ -d "$dir" ]]; then
stop_docker_service "$dir"
else
echo "$(date): 目录不存在: $dir" | tee -a /var/log/docker-shutdown.log
fi
# 每个服务之间等待2秒
sleep 2
done
# 清理孤立的容器和网络
echo "$(date): 清理孤立的容器和网络..." | tee -a /var/log/docker-shutdown.log
docker container prune -f
docker network prune -f
# 停止 Docker 守护进程(可选)
echo "$(date): 停止 Docker 守护进程..." | tee -a /var/log/docker-shutdown.log
systemctl stop docker
echo "$(date): Docker 服务停止完成" | tee -a /var/log/docker-shutdown.log