diff --git a/lib/common.sh b/lib/common.sh index 3bad4f7..2b03ff8 100644 --- a/lib/common.sh +++ b/lib/common.sh @@ -279,8 +279,8 @@ backup_database() { } cleanup_old_db_backups() { - local keep="${1:-1}" - local to_del; to_del=$(remote "ls -t ${REMOTE_DIR}/backups/${DB_NAME}_*.dump 2>/dev/null | tail -n +$((keep+1))" || echo "") + local keep="${1:-7}" + local to_del; to_del=$(remote "ls -t ${REMOTE_DIR}/backups/${DB_NAME}_*.dump* 2>/dev/null | tail -n +$((keep+1))" || echo "") [ -z "$to_del" ] && return 0 log_step "清理旧数据库备份(保留 ${keep} 个)..." echo "$to_del" | while read -r f; do [ -n "$f" ] && remote "rm -f '${f}'" 2>/dev/null && echo " 删除: $(basename "$f")" || true; done diff --git a/src/main.rs b/src/main.rs index 2bb78d6..2a00402 100644 --- a/src/main.rs +++ b/src/main.rs @@ -325,6 +325,7 @@ async fn main() -> std::io::Result<()> { create_server_config(pool_clone.clone(), http_client_clone.clone(), app_state_clone.clone()) }) .keep_alive(std::time::Duration::from_secs(30)) + .shutdown_timeout(10) .backlog(1024) .bind_openssl(&addr, ssl_builder) { @@ -348,6 +349,7 @@ async fn main() -> std::io::Result<()> { create_server_config(pool_clone.clone(), http_client_clone.clone(), app_state_clone.clone()) }) .keep_alive(std::time::Duration::from_secs(30)) + .shutdown_timeout(10) .backlog(1024) .bind(&addr) {