✦ 新体验 探索可道云文档,快速找到您的答案

迁移数据到可道云

查看 Markdown

如何将其他系统的现有数据导入到可道云

1. 迁移说明

可道云 KodBox 存储数据的目录通常为站点下 data/files 目录,可道云会对相同文件去重(秒传),服务器上的实际存放方式与网页文件夹结构不同,因此不能通过「直接拷贝文件到 data 目录」完成迁移,需按本文步骤操作。

这里假设有 2 台服务器,需要从 服务器 A 迁移数据到 服务器 B:

  • 服务器 A:原服务器 192.168.1.100,上面有待迁移数据,操作系统可以是 Linux/Windows/NAS。
  • 服务器 B:可道云服务器 192.168.1.101,已按官网教程完成可道云部署,操作系统默认是 Linux。

迁移数据到可道云主要分为两个步骤:

  1. 通过 rsync 命令同步,将 服务器 A 的文件同步到 服务器 B;
  2. 在网页登录可道云管理员账号,将 服务器 B 的本地文件剪切到可道云。

2. Rsync 目录同步

迁移 Linux 数据到可道云服务器

提示:

当待迁移 服务器 A 为 Linux 时:

  • 安装 rsync 的方式为 yum install -y rsync。
  • 假设待迁移数据位于 /data 目录。

在 服务器 A 执行同步命令:

rsync -avP /data/* --chown=nginx:nginx root@192.168.1.101:/data

将 服务器 A 的 /data 目录同步到 服务器 B 的 /data 目录。

rsync_linux

迁移 Windows 数据到可道云服务器

提示:

当待迁移 服务器 A 为 Windows 时:

  • 可以使用 cwrsync,命令中目录要以 /cygdrive/ 开头,盘符后面没有 :。
  • 假设待迁移数据位于 D:\data 目录。
  • --chown=nginx:nginx 同步修改文件所有者为 nginx,若服务器 B 没有 nginx 用户请省略。
  1. 下载 cwrsync_6.2.9_x64_free.zip,解压并重命名到 c:\cwrsync 目录;

  2. 打开 powershell 终端,执行同步命令:

    C:\cwrsync\bin\rsync.exe -e 'c:\cwrsync\bin\ssh.exe' -avP --chown=nginx:nginx /cygdrive/d/data/* root@192.168.1.101:/data
    

    将 服务器 A 的 D:\data 目录同步到 服务器 B 的 /data 目录。

rsync_win

迁移 NAS 数据到可道云服务器

提示:

当待迁移 服务器 A 为 NAS 时:

  • 默认已有 rsync 命令,需要开启 ssh 功能,通过管理员账号可以登录。
  • 假设待迁移数据位于 /volume1/web/data 目录。

这里以群晖 DSM 7.2 为例:

通过 ssh 登录 NAS,然后执行同步命令(需要注意命令加了 sudo,回车后要输一次管理员密码):

sudo rsync -avP /volume1/web/data/* --chown=nginx:nginx root@192.168.1.101:/data

将 服务器 A 的 /volume1/web/data 目录同步到 服务器 B 的 /data 目录。

rsync_nas

3. 将服务器本地文件写入可道云

当前所有数据已经迁移到可道云服务器的 /data 目录,要让网页能读写这些文件,需将目录所有者改为 nginx(可道云 Web 服务运行用户)。

chown -R nginx:nginx /data/
chmod -R 755 /data/

nginx_priv

在网页登录可道云管理员账号,在文件地址栏输入 /data 并回车进入站点根目录,找到已迁移数据。

data_path

可以选中文件夹右键剪切,进入企业网盘并右键粘贴,或者直接拖动文件夹移动到企业网盘,等待执行完成即可。

data_move

若耗时较久,可以在任务管理器中查看后台执行进度。

getask

4. 迁移 TB 级数据说明

提示:

当待迁移数据达到 TB 级别时:

  • 手动执行 rsync 已不再适合,建议通过脚本方式实现自动化与可控迁移。
  • 简单的数据拷贝方式效率和可靠性不足,应改为使用系统提供的数据导入功能来完成迁移。
  1. 自动化脚本同步参考,并设置每小时自动执行crontab -e添加0 * * * * /usr/local/bin/rsync_auto.sh

    #!/bin/bash
    
    # ===== 配置 =====
    SRC="admin@192.168.1.100:/data/"
    DST="/kdisk/volume1/mgfiles/data/"
    LOG="/var/log/rsync.log"
    LOCK="/tmp/rsync.lock"
    RSYNC_CMD=(rsync -av --ignore-existing --partial --exclude='.*')
    
    # ===== 时间窗口 =====
    # 0 = 允许运行
    in_time_window() {
        local HOUR WEEKDAY
        HOUR=$(date +%H)
        WEEKDAY=$(date +%u)
    
        # 周末
        [ "$WEEKDAY" -ge 6 ] && return 0
    
        # 工作日 18:00–09:59
        [ "$HOUR" -ge 18 ] || [ "$HOUR" -lt 10 ]
    }
    
    # ===== rsync PID =====
    get_rsync_pids() {
        pgrep -f "$RSYNC_CMD $SRC $DST"
    }
    
    RSYNC_PIDS=$(get_rsync_pids)
    
    # ===== 主逻辑 =====
    if in_time_window; then
        # ===== 允许时间 =====
        if [ -n "$RSYNC_PIDS" ]; then
            # rsync 在跑
            [ ! -f "$LOCK" ] && touch "$LOCK"
            echo "$(date '+%F %T') allowed window, rsync running: $RSYNC_PIDS" >> "$LOG"
            exit 0
        fi
    
        # rsync 不在跑
        if [ -f "$LOCK" ]; then
            echo "$(date '+%F %T') stale lock found, removing." >> "$LOG"
            rm -f "$LOCK"
        fi
    
        # ===== 启动 rsync =====
        echo "$(date '+%F %T') allowed window, starting rsync." >> "$LOG"
        touch "$LOCK"
    
        stdbuf -oL -eL "${RSYNC_CMD[@]}" "$SRC" "$DST" >> "$LOG" 2>&1 &
        RSYNC_PID=$!
    
        echo "$(date '+%F %T') rsync started, pid=$RSYNC_PID" >> "$LOG"
    else
        # ===== 禁止时间 =====
        if [ -n "$RSYNC_PIDS" ]; then
            echo "$(date '+%F %T') forbidden window, killing rsync: $RSYNC_PIDS" >> "$LOG"
            kill -9 $RSYNC_PIDS
        fi
    
        if [ -f "$LOCK" ]; then
            rm -f "$LOCK"
            echo "$(date '+%F %T') forbidden window, lock removed." >> "$LOG"
        fi
    fi
    
    exit 0
    
  2. 确认同步完成,如tail /var/log/rsync.log不再更新,同时du -sh /kdisk/volume1/mgfiles/data与原始目录比较大小一致。

  3. 进入后台存储管理,使用迁移目录创建新存储新迁移文件,这是数据导入的条件之一。

    mgfiles

    mgfiles1

  4. 在存储管理右上方,点击存储导入,选择目录位置后确定开始。

    • 原始数据目录:新迁移文件 /data
    • 网盘存储目录:企业网盘 /data

migrate1

注意

  • 网盘文件需通过存储路径访问,因此在导入之前,需将待导入的原始数据目录(或父级目录)添加为存储。
  • 此操作不会对原始数据做改动,只构建文件索引映射到网盘,在导入之后,不能对原始数据做任何改动,避免索引失效。
  • 导入数据与网盘默认存储数据的路径结构不同,建议将导入数据的存储作为附加存储(而非系统默认存储)使用,以维护数据结构统一。
  • 导入之前建议对数据库进行备份,以免出现意外。
  • 文件路径长度超过256个字符会被限制导入,相关日志放在网盘存放目录下的“导入失败日志-长度超256字符”文件夹中,可在导入完成后自行查看并处理。

输入关键词,搜索可道云文档

可道云 文档检索
文档检索

有什么可以帮您?

当前为文档检索模式,提供相关文档片段和来源,不生成模型回答。

试试这样提问
Enter 发送 · Shift + Enter 换行分享反馈
检索结果为文档片段,请打开参考来源查看完整内容。