新增备份监控与定时配置
This commit is contained in:
+25
-1
@@ -146,7 +146,7 @@ validate_env() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local app_env caddy_domain caddy_email mysql_dsn redis_addr storage_endpoint backend_uid backend_gid backup_dir backup_restore_dir backup_oss_uri backup_user
|
||||
local app_env caddy_domain caddy_email mysql_dsn redis_addr storage_endpoint backend_uid backend_gid backup_dir backup_status_dir backup_restore_dir backup_oss_uri backup_user
|
||||
app_env="$(require_env APP_ENV)"
|
||||
caddy_domain="$(require_env CADDY_DOMAIN)"
|
||||
caddy_email="$(require_env CADDY_EMAIL)"
|
||||
@@ -162,6 +162,7 @@ validate_env() {
|
||||
require_env STORAGE_ACCESS_KEY_ID >/dev/null
|
||||
require_env STORAGE_SECRET_ACCESS_KEY >/dev/null
|
||||
backup_dir="$(require_env BACKUP_DIR)"
|
||||
backup_status_dir="$(require_env BACKUP_STATUS_DIR)"
|
||||
backup_restore_dir="$(require_env BACKUP_RESTORE_DIR)"
|
||||
backup_oss_uri="$(require_env BACKUP_OSS_URI)"
|
||||
require_env BACKUP_PASSPHRASE >/dev/null
|
||||
@@ -216,6 +217,10 @@ validate_env() {
|
||||
log_error "BACKUP_DIR 必须是 /data 之下的具体绝对路径,当前值:${backup_dir}"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "${backup_status_dir}" != "${backup_dir}/"* ]]; then
|
||||
log_error "BACKUP_STATUS_DIR 必须位于 BACKUP_DIR 之下,当前值:${backup_status_dir}"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "${backup_restore_dir}" != /data/* || "${backup_restore_dir}" == "/data" || "${backup_restore_dir}" == "${backup_dir}" ]]; then
|
||||
log_error "BACKUP_RESTORE_DIR 必须是与 BACKUP_DIR 不同的 /data 子目录,当前值:${backup_restore_dir}"
|
||||
exit 1
|
||||
@@ -403,6 +408,24 @@ prepare_log_dir() {
|
||||
chmod 700 "${BACKEND_LOG_DIR}"
|
||||
}
|
||||
|
||||
prepare_backup_status_dir() {
|
||||
local backend_uid backend_gid status_dir owner_mismatch
|
||||
backend_uid="$(require_env BACKEND_UID)"
|
||||
backend_gid="$(require_env BACKEND_GID)"
|
||||
status_dir="$(require_env BACKUP_STATUS_DIR)"
|
||||
mkdir -p "${status_dir}"
|
||||
owner_mismatch="$(find "${status_dir}" \( ! -uid "${backend_uid}" -o ! -gid "${backend_gid}" \) -print -quit)"
|
||||
if [[ -n "${owner_mismatch}" ]]; then
|
||||
if [[ "${EUID}" -ne 0 ]]; then
|
||||
log_error "备份状态目录存在属主不匹配的文件:${owner_mismatch}"
|
||||
log_error "请先执行:sudo chown -R ${backend_uid}:${backend_gid} ${status_dir}"
|
||||
exit 1
|
||||
fi
|
||||
chown -R "${backend_uid}:${backend_gid}" "${status_dir}"
|
||||
fi
|
||||
chmod 700 "${status_dir}"
|
||||
}
|
||||
|
||||
wait_service_healthy() {
|
||||
local service="$1"
|
||||
local label="$2"
|
||||
@@ -557,6 +580,7 @@ main() {
|
||||
validate_env
|
||||
export_caddy_env
|
||||
prepare_log_dir
|
||||
prepare_backup_status_dir
|
||||
# 选号网需在 build caddy 之前准备 show-dist 与 conf.d
|
||||
prepare_show_site
|
||||
|
||||
|
||||
Reference in New Issue
Block a user