使用Wikit CLI备份你的Wikidot站点

HW 发布于 27 天前 182 次阅读


Wikit CLI是由kakushi-w制作的Wikidot备份工具,其可以备份特定Wikidot站点几乎所有对外公开的数据,同时也可以将其导入至ProjectWikit进行迁移

关于Wikit CLI的详情,请参考其在Github上的家

部署

Linux / macOS

curl -fsSL https://raw.githubusercontent.com/kakushi-w/wikit/main/install.sh | sh

Windows(PowerShell)

irm https://raw.githubusercontent.com/kakushi-w/wikit/main/install.ps1 | iex

以Linux为例,新建一个文件夹(以我为例,我建立在/www1/WikitCLI),在其中建立config.json文件

示例:

{
  "base_directory": "/data",
  "wikis": [ { "name": "scp-wiki", "url": "https://scp-wiki.wikidot.com" } ],
  "ratelimit": { "bucket_size": 60, "refill_seconds": 60 },
  "delay_ms": 200,
  "user_list_cache_freshness": 86400,
  "http_proxy": null,
  "socks_proxy": null,
  "refresh_votes": false,
  "scheme": "https",
  "keep_removed": false,
  "checkpoint_pages": 50,
  "checkpoint_seconds": 30
}

唯一需要修改的是wikis处;如果你有复数个站点需要备份,可以按这样的方式填写:

{
  "base_directory": "/data",
  "wikis": [ { "name": "lostmedia", "url": "https://lostmedia.wikidot.com" },
             { "name": "backrooms-to-dv", "url": "https://backrooms-to-dv.wikidot.com" }
  ],
  "ratelimit": {
    "bucket_size": 40,
    "refill_seconds": 60
  },
  "delay_ms": 800,
  "user_list_cache_freshness": 86400,
  "http_proxy": null,
  "socks_proxy": null,
  "refresh_votes": false,
  "scheme": "https",
  "keep_removed": false,
  "checkpoint_pages": 50,
  "checkpoint_seconds": 30
}

运行

以宝塔为例,打开计划任务,新建一个任务,输入:

#!/bin/bash

export PATH="/usr/local/bin:/root/.local/bin:/usr/bin:/bin:$PATH"

cd /www1/WikitCLI || {
    echo "无法进入目录 /www1/WikitCLI" >> /www1/WikitCLI/data.txt
    exit 1
}

echo "===== $(date '+%Y-%m-%d %H:%M:%S') 开始执行 =====" >> /www1/WikitCLI/data.txt

/root/.local/bin/wikit backup all -c /www1/WikitCLI/config.json >> /www1/WikitCLI/data.txt 2>&1

echo "===== $(date '+%Y-%m-%d %H:%M:%S') 执行结束 =====" >> /www1/WikitCLI/data.txt

其中/www1/WikitCLI参考你自己的目录

常见问题

No such file or directory

可能跑计划任务会出现:

/www/server/cron/462978162f02027296984f9c566ab61f: line 15: /root/.local/bin/wikit: No such file or directory

SSH执行

which wikit

返回示例:

/usr/local/bin/wikit

则修改为

#!/bin/bash
export PATH="/usr/local/bin:/root/.local/bin:/usr/bin:/bin:$PATH"

cd /www1/WikitCLI || {
    echo "无法进入目录 /www1/WikitCLI" >> /www1/WikitCLI/data.txt
    exit 1
}

echo "===== $(date '+%Y-%m-%d %H:%M:%S') 开始执行 =====" >> /www1/WikitCLI/data.txt

/usr/local/bin/wikit backup all -c /www1/WikitCLI/config.json >> /www1/WikitCLI/data.txt 2>&1

echo "===== $(date '+%Y-%m-%d %H:%M:%S') 执行结束 =====" >> /www1/WikitCLI/data.txt

附件备份失败

即存在以下报错:

tls: failed to verify certificate: x509: certificate signed by unknown authority

服务器上的 系统 CA 证书库过旧或不完整,无法验证 Wikidot 文件服务器(wdfiles.com)使用的证书

wikit 本身没有提供跳过 TLS 验证的选项(HTTP 客户端直接使用系统默认的证书信任链),所以需要从系统层面修复,请自行更新系统 CA 证书

以Ubuntu为例:

apt update
apt install --reinstall ca-certificates -y
update-ca-certificates

CentOS:

yum reinstall ca-certificates -y
update-ca-trust

此作者没有提供个人介绍。
最后更新于 2026-10-11