如何快速导入nextCloud的LDAP设置?

Cloud storage

1 前言

一个问题,一篇文章,一出故事。
笔者今天尝试从一个NextCloud迁移配置到一个新的NextCloud,因此本章将实现NextCloud的配置文件快速导入导出。

2 最佳实践

2.1 导出配置

occ ldap:show-config s04 --show-password --output=json > ldap_s04_config.json

2.2 导入配置

2.2.1 创建导入脚本

mkdir -p ~/scripts/
vim ~/scripts/importLdapConfig.sh

加入如下配置,

#!/bin/bash

# 源配置文件
configFile="ldap_s04_config.json"
# 源配置ID(JSON中的键,此处为s04)
sourceConfig="s04"
# 目标LDAP配置ID(Nextcloud中的新ID)
targetConfig="s01"

occ() {
    sudo -u apache /usr/bin/php -d apc.enable_cli=1 -d memory_limit=1024M /var/www/nextcloud/occ "$@"
}

# 检查jq是否安装
if ! command -v jq &> /dev/null; then
    echo "错误: 请先安装 jq(yum install jq 或 apt install jq)"
    exit 1
fi

# 提取所有键并循环设置
keys=$(jq -r ".${sourceConfig} | keys[]" "$configFile")
for key in $keys; do
    # 处理数组类型的值(如ldapBaseUsers)
    if jq -e ".${sourceConfig}.${key} | type == \"array\"" "$configFile" &>/dev/null; then
        value=$(jq -r ".${sourceConfig}.${key} | join(\",\")" "$configFile")
    else
        value=$(jq -r ".${sourceConfig}.${key}" "$configFile")
    fi
    echo occ ldap:set-config "$targetConfig" "$key" "$value"
    occ ldap:set-config "$targetConfig" "$key" "$value"
done

2.2.2 执行导入脚本

bash ~/scripts/importLdapConfig.sh
没有评论

发表回复

Cloud storage
如何让NextCloud集成Collabora Online?

1 前言 一个问题,一篇文章,一出故事。 笔者今天尝试将Collabora Online集成到Nex …

Cloud storage
如何解决NextCloud的PCNTL扩展提示?

1 前言 一个问题,一篇文章,一出故事。 笔者今天尝试NextCloud的以下指令, occ con …

Cloud storage
如何配置Oracle Linux 9.x Nextcloud集成redis与apcu?

1 基础知识 1.1 redis的作用 – redis内存缓存服务可以提高nextClo …