| #!/usr/bin/env bash |
| |
| |
|
|
| ENV_FILE="/etc/profile.d/openclaw-env.sh" |
|
|
| mkdir -p /etc/profile.d |
|
|
| |
| write_env_var() { |
| local key="$1" |
| local value="$2" |
| |
| printf "export %s=%q\n" "$key" "$value" |
| } |
|
|
| { |
| echo "# OpenClaw 环境变量 - 自动生成的,供所有新的 bash 会话使用" |
| echo "# 生成时间: $(date -u +%Y-%m-%dT%H:%M:%SZ)" |
| echo "" |
| echo "# 基础配置" |
| write_env_var "OPENCLAW_HOME" "${OPENCLAW_HOME:-/root}" |
| write_env_var "OPENCLAW_STATE_DIR" "${OPENCLAW_STATE_DIR:-/root/.openclaw}" |
| write_env_var "OPENCLAW_WORKSPACE_DIR" "${OPENCLAW_WORKSPACE_DIR:-/root/.openclaw/workspace}" |
| write_env_var "OPENCLAW_CONFIG_PATH" "${OPENCLAW_CONFIG_PATH:-/root/.openclaw/openclaw.json}" |
| echo "" |
| echo "# 备份核心配置" |
| write_env_var "OPENCLAW_BACKUP_DATASET_REPO" "${OPENCLAW_BACKUP_DATASET_REPO:-}" |
| write_env_var "OPENCLAW_RESTORE_DATASET_REPO" "${OPENCLAW_RESTORE_DATASET_REPO:-}" |
| write_env_var "OPENCLAW_BACKUP_REPO_TYPE" "${OPENCLAW_BACKUP_REPO_TYPE:-dataset}" |
| write_env_var "OPENCLAW_BACKUP_PATH_PREFIX" "${OPENCLAW_BACKUP_PATH_PREFIX:-backups}" |
| write_env_var "HF_TOKEN" "${HF_TOKEN:-}" |
| write_env_var "OPENCLAW_HF_SPACE_ID" "${OPENCLAW_HF_SPACE_ID:-}" |
| write_env_var "OPENCLAW_BACKUP_ENABLED" "${OPENCLAW_BACKUP_ENABLED:-false}" |
| write_env_var "OPENCLAW_BACKUP_NPM_ENABLED" "${OPENCLAW_BACKUP_NPM_ENABLED:-true}" |
| write_env_var "OPENCLAW_RESTORE_NPM_ENABLED" "${OPENCLAW_RESTORE_NPM_ENABLED:-true}" |
| write_env_var "OPENCLAW_BACKUP_CRON" "${OPENCLAW_BACKUP_CRON:-*/12 * * * *}" |
| write_env_var "OPENCLAW_BACKUP_SOURCE_DIR" "${OPENCLAW_BACKUP_SOURCE_DIR:-/root/.openclaw}" |
| write_env_var "OPENCLAW_BACKUP_WORK_DIR" "${OPENCLAW_BACKUP_WORK_DIR:-/tmp/openclaw-backup}" |
| echo "" |
| echo "# 备份加密配置" |
| write_env_var "OPENCLAW_BACKUP_ENCRYPTION_ENABLED" "${OPENCLAW_BACKUP_ENCRYPTION_ENABLED:-false}" |
| write_env_var "OPENCLAW_BACKUP_ENCRYPTION_PASSWORD" "${OPENCLAW_BACKUP_ENCRYPTION_PASSWORD:-}" |
| echo "" |
| echo "# 备份目录配置" |
| write_env_var "OPENCLAW_BACKUP_ROOT_CONFIG_DIR" "${OPENCLAW_BACKUP_ROOT_CONFIG_DIR:-/root/.config}" |
| write_env_var "OPENCLAW_BACKUP_ROOT_CODEX_DIR" "${OPENCLAW_BACKUP_ROOT_CODEX_DIR:-/root/.codex}" |
| write_env_var "OPENCLAW_BACKUP_ROOT_CLAUDE_DIR" "${OPENCLAW_BACKUP_ROOT_CLAUDE_DIR:-/root/.claude}" |
| write_env_var "OPENCLAW_BACKUP_ROOT_AGENTS_DIR" "${OPENCLAW_BACKUP_ROOT_AGENTS_DIR:-/root/.agents}" |
| write_env_var "OPENCLAW_BACKUP_ROOT_SSH_DIR" "${OPENCLAW_BACKUP_ROOT_SSH_DIR:-/root/.ssh}" |
| write_env_var "OPENCLAW_BACKUP_ROOT_ENV_DIR" "${OPENCLAW_BACKUP_ROOT_ENV_DIR:-/root/.env.d}" |
| write_env_var "OPENCLAW_BACKUP_ROOT_NPM_DIR" "${OPENCLAW_BACKUP_ROOT_NPM_DIR:-/root/.npm}" |
| write_env_var "OPENCLAW_BACKUP_ROOT_LARK_CLI_DIR" "${OPENCLAW_BACKUP_ROOT_LARK_CLI_DIR:-/root/.lark-cli}" |
| echo "" |
| echo "# 增量备份配置" |
| write_env_var "OPENCLAW_INCREMENTAL_BACKUP" "${OPENCLAW_INCREMENTAL_BACKUP:-true}" |
| write_env_var "OPENCLAW_INCREMENTAL_INTERVAL_MINUTES" "${OPENCLAW_INCREMENTAL_INTERVAL_MINUTES:-10}" |
| echo "" |
| echo "# 动态备份策略" |
| write_env_var "OPENCLAW_DYNAMIC_BACKUP" "${OPENCLAW_DYNAMIC_BACKUP:-true}" |
| write_env_var "OPENCLAW_DYNAMIC_SMALL_THRESHOLD_MB" "${OPENCLAW_DYNAMIC_SMALL_THRESHOLD_MB:-500}" |
| write_env_var "OPENCLAW_DYNAMIC_MEDIUM_THRESHOLD_MB" "${OPENCLAW_DYNAMIC_MEDIUM_THRESHOLD_MB:-2000}" |
| write_env_var "OPENCLAW_DYNAMIC_HIGH_CHANGE_RATE" "${OPENCLAW_DYNAMIC_HIGH_CHANGE_RATE:-10}" |
| write_env_var "OPENCLAW_DYNAMIC_LOW_CHANGE_RATE" "${OPENCLAW_DYNAMIC_LOW_CHANGE_RATE:-2}" |
| write_env_var "OPENCLAW_DYNAMIC_MIN_CHANGED_FILES" "${OPENCLAW_DYNAMIC_MIN_CHANGED_FILES:-5}" |
| write_env_var "OPENCLAW_DYNAMIC_MIN_CHANGED_SIZE_KB" "${OPENCLAW_DYNAMIC_MIN_CHANGED_SIZE_KB:-100}" |
| echo "" |
| echo "# 全备份策略" |
| write_env_var "OPENCLAW_FULL_BACKUP_INTERVAL_HOURS" "${OPENCLAW_FULL_BACKUP_INTERVAL_HOURS:-1}" |
| write_env_var "OPENCLAW_MAX_INCREMENTAL_BACKUPS" "${OPENCLAW_MAX_INCREMENTAL_BACKUPS:-10}" |
| echo "" |
| echo "# 备份保留和压缩" |
| write_env_var "OPENCLAW_BACKUP_KEEP_COUNT" "${OPENCLAW_BACKUP_KEEP_COUNT:-48}" |
| write_env_var "OPENCLAW_BACKUP_COMPRESSION_LEVEL" "${OPENCLAW_BACKUP_COMPRESSION_LEVEL:-6}" |
| write_env_var "OPENCLAW_BACKUP_SPLIT_SIZE" "${OPENCLAW_BACKUP_SPLIT_SIZE:-500M}" |
| write_env_var "OPENCLAW_BACKUP_SIZE_WARNING_MB" "${OPENCLAW_BACKUP_SIZE_WARNING_MB:-1500}" |
| write_env_var "OPENCLAW_BACKUP_PRIVATE" "${OPENCLAW_BACKUP_PRIVATE:-true}" |
| echo "" |
| echo "# 健康检查配置" |
| write_env_var "OPENCLAW_BACKUP_HEALTH_CHECK_ENABLED" "${OPENCLAW_BACKUP_HEALTH_CHECK_ENABLED:-false}" |
| write_env_var "OPENCLAW_BACKUP_HEALTH_CHECK_BEFORE" "${OPENCLAW_BACKUP_HEALTH_CHECK_BEFORE:-false}" |
| write_env_var "OPENCLAW_BACKUP_HEALTH_CHECK_AFTER" "${OPENCLAW_BACKUP_HEALTH_CHECK_AFTER:-false}" |
| write_env_var "OPENCLAW_BACKUP_MAX_RETRIES" "${OPENCLAW_BACKUP_MAX_RETRIES:-3}" |
| echo "" |
| echo "# 看门狗配置" |
| write_env_var "WATCHDOG_INTERVAL" "${WATCHDOG_INTERVAL:-300}" |
| write_env_var "MAX_BACKUP_AGE_MINUTES" "${MAX_BACKUP_AGE_MINUTES:-30}" |
| write_env_var "FORCE_BACKUP_INTERVAL" "${FORCE_BACKUP_INTERVAL:-3600}" |
| echo "" |
| echo "# 恢复超时" |
| write_env_var "OPENCLAW_RESTORE_TIMEOUT" "${OPENCLAW_RESTORE_TIMEOUT:-5400}" |
| echo "" |
| echo "# 额外目录和文件" |
| write_env_var "OPENCLAW_BACKUP_EXTRA_DIRS" "${OPENCLAW_BACKUP_EXTRA_DIRS:-}" |
| write_env_var "OPENCLAW_BACKUP_EXTRA_FILES" "${OPENCLAW_BACKUP_EXTRA_FILES:-}" |
| } > "$ENV_FILE" |
|
|
| chmod 644 "$ENV_FILE" |
| echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] Environment saved to $ENV_FILE" |
|
|