You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过终端批量恢复Moodle课程备份至指定课程区域(ID 20)

批量恢复Moodle课程备份至指定ID课程区域(Ubuntu终端实现)

完全可以通过Ubuntu终端的循环脚本实现批量恢复,以下是两种可靠的实现方式:

方法1:使用Moosh(Moodle命令行工具,推荐)

Moosh是简化Moodle命令行操作的工具,语法更简洁,适合批量任务。

前置步骤:安装Moosh

cd /path/to/your/moodle/admin/cli
git clone https://github.com/tmuras/moosh.git
cd moosh
chmod +x moosh.php

批量恢复循环脚本

将所有.mbz格式的备份文件放在同一个目录(比如/home/you/moodle_backups),然后执行以下循环:

# 配置路径和目标ID
BACKUP_DIR="/home/you/moodle_backups"
TARGET_TAREA_ID=20  # 你的目标课程区域ID

# 遍历所有备份文件执行恢复
for backup_file in "$BACKUP_DIR"/*.mbz; do
    echo "正在恢复: $backup_file"
    /path/to/your/moodle/admin/cli/moosh/moosh.php course-restore "$backup_file" "$TARGET_TAREA_ID"
done

方法2:使用Moodle原生CLI脚本restore.php

直接调用Moodle自带的恢复脚本,无需额外安装工具,但参数更繁琐:

# 配置路径和目标ID
BACKUP_DIR="/home/you/moodle_backups"
MOODLE_ROOT="/path/to/your/moodle"
TARGET_TAREA_ID=20

# 批量恢复循环
for backup_file in "$BACKUP_DIR"/*.mbz; do
    echo "处理备份文件: $backup_file"
    php "$MOODLE_ROOT/admin/cli/restore.php" \
        --backupfile="$backup_file" \
        --categoryid="$TARGET_TAREA_ID" \  # 如果目标是课程分类ID,若为父课程ID则改用--courseid参数
        --interactive=0 \
        --execute
done

注意事项

  • 先测试单个备份文件的恢复命令,确认参数和路径正确后再执行批量操作
  • 确保运行脚本的用户拥有Moodle数据目录的读写权限(可切换为www-data用户执行:sudo -u www-data bash your_script.sh)
  • 若备份文件命名不符合*.mbz,需调整通配符匹配规则

内容的提问来源于stack exchange,提问作者D-T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:21:08