File size: 6,175 Bytes
a757bd3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/usr/bin/env bash
# 保存当前环境变量到 /etc/profile.d/openclaw-env.sh
# 供所有新的 bash 会话使用

ENV_FILE="/etc/profile.d/openclaw-env.sh"

mkdir -p /etc/profile.d

# 安全地写入环境变量,处理特殊字符
write_env_var() {
    local key="$1"
    local value="$2"
    # 使用 printf %q 对值进行转义,确保安全
    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_CARGO_DIR" "${OPENCLAW_BACKUP_ROOT_CARGO_DIR:-/root/.cargo}"
    write_env_var "OPENCLAW_BACKUP_ROOT_PIP_DIR" "${OPENCLAW_BACKUP_ROOT_PIP_DIR:-/root/.pip}"
    write_env_var "OPENCLAW_BACKUP_ROOT_RUSTUP_DIR" "${OPENCLAW_BACKUP_ROOT_RUSTUP_DIR:-/root/.rustup}"
    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:-15}"
    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:-15}"
    echo ""
    echo "# 备份保留和压缩"
    write_env_var "OPENCLAW_BACKUP_KEEP_COUNT" "${OPENCLAW_BACKUP_KEEP_COUNT:-24}"
    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:-600}"
    write_env_var "MAX_BACKUP_AGE_MINUTES" "${MAX_BACKUP_AGE_MINUTES:-30}"
    write_env_var "FORCE_BACKUP_INTERVAL" "${FORCE_BACKUP_INTERVAL:-14400}"
    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"