内容简介:内容太多,拆分几篇博客写。以 mongodb 数据库配置为例,在上述配置中,有一段配置如下:这里配置了 mongodb 默认绑定的 IP,使用 127.0.0.1 的情况下,外网无法访问该 mongodb。
wekan 介绍
内容太多,拆分几篇博客写。
snapd 安装
snapd 配置
wekan snap 方式配置
以 mongodb 数据库配置为例,在上述配置中,有一段配置如下:
DESCRIPTION_MONGODB_BIND_IP="mongodb binding ip address: eg 127.0.0.1 for localhost\n\t\tIf not defined default unix socket is used instead" DEFAULT_MONGODB_BIND_IP="127.0.0.1" KEY_MONGODB_BIND_IP="mongodb-bind-ip"
这里配置了 mongodb 默认绑定的 IP,使用 127.0.0.1 的情况下,外网无法访问该 mongodb。
官方 snap wekan 使用文档: https://github.com/wekan/wekan-snap/wiki/Install
根据文档介绍,执行下面的命令修改配置:
snap set wekan mongodb-bind-ip="0.0.0.0"
不需要重启,此时外网就可以访问该地址了,其他配置修改方式类似。
需要重启时,执行下面的命令:
systemctl restart snap.wekan.wekan
mongodb 文档: https://docs.mongodb.com/manual/crud/
复杂处理
发现看板过一段时间 CPU 就 100%.
为了测试修改配置,cp 了 /snap/wekan/381/bin 目录到别的位置(/home/redis/wekan/bin),然后修改配置。
通过 sudo mount --bind /home/redis/wekan/bin /snap/wekan/381/bin/ 将改后的配置挂载到原位置进行替换。
测试以后,还需要通过下面代码解除挂载:
umount /home/redis/wekan/bin
查看 node 负载时,用到了工具 tick: https://github.com/sidorares/node-tick
wekan 虽然通过 node --prof main.js 运行了,但是并没有产生 v8.log 文件。
wekan 端口和域名
mango 外网访问
备份还原
参考脚本: https://github.com/wekan/wekan/wiki/Backup
下面脚本都是针对 mongo 使用 27019 端口,如果不一致需要自己修改。
备份脚本 mongodump.sh
:
#!/bin/bash makeDump() { # Gets the version of the snap. version=$(snap list | grep wekan | awk -F ' ' '{print $3}') # Prepares. now=$(date +'%Y-%m-%d_%H.%M.%S') mkdir -p /var/backups/wekan/$version-$now # Targets the dump file. # 官方下面写的 dump=$"... 导致无法运行,这里去掉了$ dump="/snap/wekan/$version/bin/mongodump" # Makes the backup. cd /var/backups/wekan/$version-$now printf "\nThe database backup is in progress.\n\n" $dump --port 27019 # Makes the tar.gz file. cd .. printf "\nMakes the tar.gz file.\n" tar -zcvf $version-$now.tar.gz $version-$now # Cleanups rm -rf $version-$now # End. printf "\nBackup done.\n" echo "Backup is archived to .tar.gz file at /var/backups/wekan/${version}-${now}.tar.gz" } # Checks is the user is sudo/root if [ "$UID" -ne "0" ] then echo "This program must be launched with sudo/root." exit 1 fi # Starts makeDump
创建脚本后加执行权限。
执行备份输出的日志:
liuzh@liuzh:~/mongo$ sudo ./mongodump.sh The database backup is in progress. 2019-01-13T01:59:40.034+0000 writing wekan.meteor-migrations to 2019-01-13T01:59:40.034+0000 writing wekan.activities to 2019-01-13T01:59:40.035+0000 writing wekan.presences to 2019-01-13T01:59:40.035+0000 writing wekan.lists to 2019-01-13T01:59:40.036+0000 done dumping wekan.meteor-migrations (27 documents) 2019-01-13T01:59:40.037+0000 writing wekan.swimlanes to 2019-01-13T01:59:40.037+0000 done dumping wekan.activities (11 documents) 2019-01-13T01:59:40.037+0000 writing wekan.accountSettings to 2019-01-13T01:59:40.038+0000 done dumping wekan.presences (8 documents) 2019-01-13T01:59:40.039+0000 writing wekan.boards to 2019-01-13T01:59:40.040+0000 done dumping wekan.swimlanes (2 documents) 2019-01-13T01:59:40.040+0000 writing wekan.announcements to 2019-01-13T01:59:40.040+0000 done dumping wekan.accountSettings (2 documents) 2019-01-13T01:59:40.041+0000 writing wekan.settings to 2019-01-13T01:59:40.041+0000 done dumping wekan.boards (2 documents) 2019-01-13T01:59:40.042+0000 writing wekan.users to 2019-01-13T01:59:40.042+0000 done dumping wekan.settings (1 document) 2019-01-13T01:59:40.042+0000 writing wekan.card_comments to 2019-01-13T01:59:40.042+0000 done dumping wekan.announcements (1 document) 2019-01-13T01:59:40.043+0000 writing wekan.meteor_accounts_loginServiceConfiguration to 2019-01-13T01:59:40.043+0000 done dumping wekan.lists (7 documents) 2019-01-13T01:59:40.044+0000 writing wekan.checklistItems to 2019-01-13T01:59:40.044+0000 done dumping wekan.card_comments (0 documents) 2019-01-13T01:59:40.045+0000 writing wekan.cards to 2019-01-13T01:59:40.045+0000 done dumping wekan.checklistItems (0 documents) 2019-01-13T01:59:40.045+0000 writing wekan.checklists to 2019-01-13T01:59:40.046+0000 done dumping wekan.meteor_accounts_loginServiceConfiguration (0 documents) 2019-01-13T01:59:40.046+0000 writing wekan.meteor_oauth_pendingCredentials to 2019-01-13T01:59:40.046+0000 done dumping wekan.users (1 document) 2019-01-13T01:59:40.046+0000 writing wekan.invitation_codes to 2019-01-13T01:59:40.047+0000 done dumping wekan.cards (0 documents) 2019-01-13T01:59:40.047+0000 writing wekan.unsaved-edits to 2019-01-13T01:59:40.047+0000 done dumping wekan.checklists (0 documents) 2019-01-13T01:59:40.048+0000 done dumping wekan.unsaved-edits (0 documents) 2019-01-13T01:59:40.048+0000 done dumping wekan.meteor_oauth_pendingCredentials (0 documents) 2019-01-13T01:59:40.048+0000 done dumping wekan.invitation_codes (0 documents) Makes the tar.gz file. 381-2019-01-13_01.59.39/ 381-2019-01-13_01.59.39/dump/ 381-2019-01-13_01.59.39/dump/wekan/ 381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.metadata.json 381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.metadata.json 381-2019-01-13_01.59.39/dump/wekan/boards.metadata.json 381-2019-01-13_01.59.39/dump/wekan/card_comments.metadata.json 381-2019-01-13_01.59.39/dump/wekan/cards.metadata.json 381-2019-01-13_01.59.39/dump/wekan/activities.bson 381-2019-01-13_01.59.39/dump/wekan/announcements.metadata.json 381-2019-01-13_01.59.39/dump/wekan/users.bson 381-2019-01-13_01.59.39/dump/wekan/presences.metadata.json 381-2019-01-13_01.59.39/dump/wekan/lists.metadata.json 381-2019-01-13_01.59.39/dump/wekan/accountSettings.metadata.json 381-2019-01-13_01.59.39/dump/wekan/settings.bson 381-2019-01-13_01.59.39/dump/wekan/users.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.bson 381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.bson 381-2019-01-13_01.59.39/dump/wekan/checklistItems.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.metadata.json 381-2019-01-13_01.59.39/dump/wekan/accountSettings.bson 381-2019-01-13_01.59.39/dump/wekan/presences.bson 381-2019-01-13_01.59.39/dump/wekan/invitation_codes.bson 381-2019-01-13_01.59.39/dump/wekan/settings.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.bson 381-2019-01-13_01.59.39/dump/wekan/invitation_codes.metadata.json 381-2019-01-13_01.59.39/dump/wekan/boards.bson 381-2019-01-13_01.59.39/dump/wekan/cards.bson 381-2019-01-13_01.59.39/dump/wekan/swimlanes.bson 381-2019-01-13_01.59.39/dump/wekan/lists.bson 381-2019-01-13_01.59.39/dump/wekan/checklists.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.bson 381-2019-01-13_01.59.39/dump/wekan/announcements.bson 381-2019-01-13_01.59.39/dump/wekan/checklistItems.bson 381-2019-01-13_01.59.39/dump/wekan/swimlanes.metadata.json 381-2019-01-13_01.59.39/dump/wekan/checklists.bson 381-2019-01-13_01.59.39/dump/wekan/activities.metadata.json 381-2019-01-13_01.59.39/dump/wekan/card_comments.bson Backup done. Backup is archived to .tar.gz file at /var/backups/wekan/381-2019-01-13_01.59.39.tar.gz
还原脚本 mongorestore.sh
:
#!/bin/bash makesRestore() { # Prepares the folder used for the backup. file=$1 if [[ "$file" != *tar.gz* ]] then echo "The backup archive must be a tar.gz." exit -1 fi # Goes into the parent directory. ext=$"$(basename $file)" parentDir=$"${file:0:${#file}-${#ext}}" cd $parentDir # Untar the archive. printf "\nMakes the untar of the archive.\n" tar -zxvf $file file="${file:0:${#file}-7}" # Gets the version of the snap. version=$(snap list | grep wekan | awk -F ' ' '{print $3}') # Targets the dump file. # 官方下面写的 restore=$"... 导致无法运行,这里去掉了$ restore="/snap/wekan/$version/bin/mongorestore" # Restores. printf "\nThe database restore is in progress.\n\n" $restore -d wekan --port 27019 $file/dump/wekan printf "\nRestore done.\n" # Cleanups rm -rf $file } # Checks is the user is sudo/root. if [ "$UID" -ne "0" ] then echo "This program must be launched with sudo/root." exit 1 fi # Start. makesRestore $1
执行这个脚本的时候,需要提供一个参数,就是备份文件的路径:
liuzh@liuzh:~/mongo$ sudo ./mongorestore.sh /var/backups/wekan/381-2019-01-13_01.59.39.tar.gz Makes the untar of the archive. 381-2019-01-13_01.59.39/ 381-2019-01-13_01.59.39/dump/ 381-2019-01-13_01.59.39/dump/wekan/ 381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.metadata.json 381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.metadata.json 381-2019-01-13_01.59.39/dump/wekan/boards.metadata.json 381-2019-01-13_01.59.39/dump/wekan/card_comments.metadata.json 381-2019-01-13_01.59.39/dump/wekan/cards.metadata.json 381-2019-01-13_01.59.39/dump/wekan/activities.bson 381-2019-01-13_01.59.39/dump/wekan/announcements.metadata.json 381-2019-01-13_01.59.39/dump/wekan/users.bson 381-2019-01-13_01.59.39/dump/wekan/presences.metadata.json 381-2019-01-13_01.59.39/dump/wekan/lists.metadata.json 381-2019-01-13_01.59.39/dump/wekan/accountSettings.metadata.json 381-2019-01-13_01.59.39/dump/wekan/settings.bson 381-2019-01-13_01.59.39/dump/wekan/users.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.bson 381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.bson 381-2019-01-13_01.59.39/dump/wekan/checklistItems.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.metadata.json 381-2019-01-13_01.59.39/dump/wekan/accountSettings.bson 381-2019-01-13_01.59.39/dump/wekan/presences.bson 381-2019-01-13_01.59.39/dump/wekan/invitation_codes.bson 381-2019-01-13_01.59.39/dump/wekan/settings.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.bson 381-2019-01-13_01.59.39/dump/wekan/invitation_codes.metadata.json 381-2019-01-13_01.59.39/dump/wekan/boards.bson 381-2019-01-13_01.59.39/dump/wekan/cards.bson 381-2019-01-13_01.59.39/dump/wekan/swimlanes.bson 381-2019-01-13_01.59.39/dump/wekan/lists.bson 381-2019-01-13_01.59.39/dump/wekan/checklists.metadata.json 381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.bson 381-2019-01-13_01.59.39/dump/wekan/announcements.bson 381-2019-01-13_01.59.39/dump/wekan/checklistItems.bson 381-2019-01-13_01.59.39/dump/wekan/swimlanes.metadata.json 381-2019-01-13_01.59.39/dump/wekan/checklists.bson 381-2019-01-13_01.59.39/dump/wekan/activities.metadata.json 381-2019-01-13_01.59.39/dump/wekan/card_comments.bson The database restore is in progress. 2019-01-13T02:00:18.060+0000 building a list of collections to restore from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan dir 2019-01-13T02:00:18.063+0000 reading metadata for wekan.activities from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/activities.metadata.json 2019-01-13T02:00:18.063+0000 restoring wekan.activities from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/activities.bson 2019-01-13T02:00:18.064+0000 reading metadata for wekan.meteor-migrations from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.metadata.json 2019-01-13T02:00:18.064+0000 reading metadata for wekan.presences from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/presences.metadata.json 2019-01-13T02:00:18.065+0000 restoring wekan.presences from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/presences.bson 2019-01-13T02:00:18.066+0000 reading metadata for wekan.boards from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/boards.metadata.json 2019-01-13T02:00:18.068+0000 restoring wekan.meteor-migrations from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.bson 2019-01-13T02:00:18.069+0000 restoring wekan.boards from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/boards.bson 2019-01-13T02:00:18.070+0000 error: multiple errors in bulk operation: - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "dEzSdZyy5zKSq5eXS" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "E3TGZFhwfrSypdoEh" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "dCosFe4D2EaBAH37K" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "sSPPGNuxR2kwFMGkK" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "HKaH6uPF2pJvPiekq" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "cn8ihiwKANHCeteB2" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "5tjQ4zPccfjNxZ8ay" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "KKsgxGWsMmDtTEjYT" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "KXSusvoFnmAcvw9YX" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "q4oBQnZMqe2RXE5Lt" } - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "i3qCmn2Nfn774Mfj6" } 2019-01-13T02:00:18.073+0000 restoring indexes for collection wekan.activities from metadata 2019-01-13T02:00:18.073+0000 error: multiple errors in bulk operation: - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "jfmAbmnQrPj7dkFnT" } - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "umhZMdxjEqN9HosWj" } - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "arWJiyAYZHy3K9Nxe" } - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "a5HEoG8w4AxLJ89xv" } - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "B7fYLj5k9tmKZSkEi" } - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "QhKyTjzCujZZdN9r7" } - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "zrsm9YpjLfu9nR4qj" } - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "oCRPqHBFPTWk6M4fZ" } 2019-01-13T02:00:18.075+0000 restoring indexes for collection wekan.presences from metadata 2019-01-13T02:00:18.076+0000 finished restoring wekan.presences (8 documents) 2019-01-13T02:00:18.076+0000 reading metadata for wekan.lists from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/lists.metadata.json 2019-01-13T02:00:18.076+0000 restoring wekan.lists from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/lists.bson 2019-01-13T02:00:18.077+0000 error: E11000 duplicate key error collection: wekan.boards index: _id_ dup key: { : "pN3u3CwAHprMmK7bn" } 2019-01-13T02:00:18.081+0000 restoring indexes for collection wekan.boards from metadata 2019-01-13T02:00:18.081+0000 finished restoring wekan.activities (11 documents) 2019-01-13T02:00:18.082+0000 reading metadata for wekan.users from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/users.metadata.json 2019-01-13T02:00:18.084+0000 finished restoring wekan.boards (2 documents) 2019-01-13T02:00:18.084+0000 reading metadata for wekan.swimlanes from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/swimlanes.metadata.json 2019-01-13T02:00:18.084+0000 restoring wekan.users from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/users.bson 2019-01-13T02:00:18.085+0000 restoring wekan.swimlanes from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/swimlanes.bson 2019-01-13T02:00:18.163+0000 error: multiple errors in bulk operation: - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "koin6kWCYzEfgrGrw" } - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "w6fNdtNCxBfJCMwXm" } - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "vZDKydEKuess5jj6X" } - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "YYsK7HxsNYxkYx8ja" } - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "izwCbsswZCrQh3h5E" } - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "N2Gg9hacbaFKfHr8F" } - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "uJKQem7fCkw9ax6dq" } 2019-01-13T02:00:18.163+0000 restoring indexes for collection wekan.lists from metadata 2019-01-13T02:00:18.164+0000 error: multiple errors in bulk operation: - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "kJ8MFwPkpPRhAkDvN" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "3AkJAy6a7d6w2rYJn" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "Bv3i2uneKu8MehCpR" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "h3zT3mdwuibn5NCjg" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "Tny7QSD8aeugZYqTn" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "p6Sd749FYwRKbovRg" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "MqpwTt93spsukcghQ" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "Bcv3hYYJBRoD8dnQZ" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "ftqMsDwyszdQfZjAY" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "GNmsuoKztz8btbxSP" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "fMwwwnjBinPbYyezk" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "TWj4jN8wRL5e9WPZM" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "mEDmyi57S28rZWjYx" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "k4fh3Cc6QTEX6TNco" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "4z3aiRqHh8QArF4ne" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "ragMDEPzKKhpRQDXw" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "XTHDJ6wAB7wAPwpFb" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "GH2pGLBqKRkyxXpsA" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "jdHCGJ24njW74786h" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "nTzxmhwduhZHx539f" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "acQYbQus6a7JGfu33" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "CqHKAfN3fgwDXFifD" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "L6m3hhFwrZTsPdm3h" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "pdcqPAcjYv9AnHSTA" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "8aArFSXN7zJn9dbe5" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "a3RDJeRiska69okmv" } - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "7NPkHwKJvzTZtGyKA" } 2019-01-13T02:00:18.164+0000 restoring indexes for collection wekan.meteor-migrations from metadata 2019-01-13T02:00:18.170+0000 finished restoring wekan.lists (7 documents) 2019-01-13T02:00:18.170+0000 reading metadata for wekan.settings from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/settings.metadata.json 2019-01-13T02:00:18.170+0000 restoring wekan.settings from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/settings.bson 2019-01-13T02:00:18.184+0000 error: E11000 duplicate key error collection: wekan.users index: _id_ dup key: { : "jLRat37oF72u9LsTA" } 2019-01-13T02:00:18.185+0000 restoring indexes for collection wekan.users from metadata 2019-01-13T02:00:18.185+0000 finished restoring wekan.meteor-migrations (27 documents) 2019-01-13T02:00:18.185+0000 reading metadata for wekan.accountSettings from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/accountSettings.metadata.json 2019-01-13T02:00:18.185+0000 restoring wekan.accountSettings from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/accountSettings.bson 2019-01-13T02:00:18.187+0000 error: E11000 duplicate key error collection: wekan.settings index: _id_ dup key: { : "psWJ96GC76K6nrja4" } 2019-01-13T02:00:18.187+0000 restoring indexes for collection wekan.settings from metadata 2019-01-13T02:00:18.187+0000 finished restoring wekan.settings (1 document) 2019-01-13T02:00:18.187+0000 reading metadata for wekan.announcements from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/announcements.metadata.json 2019-01-13T02:00:18.187+0000 restoring wekan.announcements from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/announcements.bson 2019-01-13T02:00:18.595+0000 finished restoring wekan.users (1 document) 2019-01-13T02:00:18.598+0000 reading metadata for wekan.checklistItems from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/checklistItems.metadata.json 2019-01-13T02:00:18.600+0000 restoring wekan.checklistItems from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/checklistItems.bson 2019-01-13T02:00:18.606+0000 error: multiple errors in bulk operation: - E11000 duplicate key error collection: wekan.swimlanes index: _id_ dup key: { : "96aTCQM2hbSs4A7s6" } - E11000 duplicate key error collection: wekan.swimlanes index: _id_ dup key: { : "53AkraNrecsgNT8D6" } 2019-01-13T02:00:18.608+0000 error: E11000 duplicate key error collection: wekan.announcements index: _id_ dup key: { : "WqfhQAx6Dw8fsHFxr" } 2019-01-13T02:00:18.609+0000 error: multiple errors in bulk operation: - E11000 duplicate key error collection: wekan.accountSettings index: _id_ dup key: { : "accounts-allowEmailChange" } - E11000 duplicate key error collection: wekan.accountSettings index: _id_ dup key: { : "accounts-allowUserNameChange" } 2019-01-13T02:00:18.610+0000 restoring indexes for collection wekan.swimlanes from metadata 2019-01-13T02:00:18.611+0000 restoring indexes for collection wekan.checklistItems from metadata 2019-01-13T02:00:18.611+0000 restoring indexes for collection wekan.announcements from metadata 2019-01-13T02:00:18.612+0000 restoring indexes for collection wekan.accountSettings from metadata 2019-01-13T02:00:18.612+0000 finished restoring wekan.checklistItems (0 documents) 2019-01-13T02:00:18.612+0000 reading metadata for wekan.card_comments from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/card_comments.metadata.json 2019-01-13T02:00:18.612+0000 restoring wekan.card_comments from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/card_comments.bson 2019-01-13T02:00:18.615+0000 finished restoring wekan.swimlanes (2 documents) 2019-01-13T02:00:18.616+0000 reading metadata for wekan.meteor_oauth_pendingCredentials from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.metadata.json 2019-01-13T02:00:18.617+0000 restoring wekan.meteor_oauth_pendingCredentials from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.bson 2019-01-13T02:00:19.069+0000 restoring indexes for collection wekan.card_comments from metadata 2019-01-13T02:00:19.069+0000 finished restoring wekan.announcements (1 document) 2019-01-13T02:00:19.069+0000 reading metadata for wekan.checklists from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/checklists.metadata.json 2019-01-13T02:00:19.070+0000 restoring wekan.checklists from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/checklists.bson 2019-01-13T02:00:19.077+0000 finished restoring wekan.card_comments (0 documents) 2019-01-13T02:00:19.077+0000 reading metadata for wekan.invitation_codes from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/invitation_codes.metadata.json 2019-01-13T02:00:19.078+0000 restoring wekan.invitation_codes from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/invitation_codes.bson 2019-01-13T02:00:19.078+0000 restoring indexes for collection wekan.meteor_oauth_pendingCredentials from metadata 2019-01-13T02:00:19.079+0000 finished restoring wekan.meteor_oauth_pendingCredentials (0 documents) 2019-01-13T02:00:19.079+0000 reading metadata for wekan.cards from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/cards.metadata.json 2019-01-13T02:00:19.079+0000 restoring wekan.cards from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/cards.bson 2019-01-13T02:00:19.080+0000 finished restoring wekan.accountSettings (2 documents) 2019-01-13T02:00:19.081+0000 reading metadata for wekan.unsaved-edits from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.metadata.json 2019-01-13T02:00:19.081+0000 restoring wekan.unsaved-edits from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.bson 2019-01-13T02:00:19.429+0000 restoring indexes for collection wekan.checklists from metadata 2019-01-13T02:00:19.455+0000 finished restoring wekan.checklists (0 documents) 2019-01-13T02:00:19.458+0000 reading metadata for wekan.meteor_accounts_loginServiceConfiguration from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.metadata.json 2019-01-13T02:00:19.458+0000 restoring wekan.meteor_accounts_loginServiceConfiguration from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.bson 2019-01-13T02:00:19.458+0000 restoring indexes for collection wekan.cards from metadata 2019-01-13T02:00:19.459+0000 restoring indexes for collection wekan.unsaved-edits from metadata 2019-01-13T02:00:19.460+0000 restoring indexes for collection wekan.meteor_accounts_loginServiceConfiguration from metadata 2019-01-13T02:00:19.461+0000 restoring indexes for collection wekan.invitation_codes from metadata 2019-01-13T02:00:19.462+0000 finished restoring wekan.unsaved-edits (0 documents) 2019-01-13T02:00:19.462+0000 finished restoring wekan.cards (0 documents) 2019-01-13T02:00:19.462+0000 finished restoring wekan.meteor_accounts_loginServiceConfiguration (0 documents) 2019-01-13T02:00:19.462+0000 finished restoring wekan.invitation_codes (0 documents) 2019-01-13T02:00:19.462+0000 done Restore done.
基于 snap 的定制开发
https://github.com/abel533/wekan
https://build.snapcraft.io/user/abel533
https://dashboard.snapcraft.io/snaps/wekan-liuzh/liuzh@liuzh:~/mongo$ snap find wekan Name Version Publisher Notes Summary wekan-ondra 1.49-2-gbfabd63 ondra - The open-source Trello-like kanban wekan-liuzh 2.01-1-g59b8b97 liuzh - The open-source kanban wekan 2.01 xet7 - Open-Source kanban
clone https://github.com/wekan/wekan,注册 https://snapcraft.io
注册名的BUG解决办法:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 谈谈看板上列的设置
- 在线教育业务看板全面解析
- WGCLOUD 监控系统更新,新增公众看板服务
- 选择scrum任务看板管理工具的要点
- WGCLOUD 监控系统更新,公众看板服务模块升级
- 看板与Scrum:哪个更适合你的团队?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
八年级数学(华东师大版)-解题升级-解题快速反应一本通(新课标)
孙丽敏等编 / 吉林教育出版社 / 2004-6 / 10.0
本书将与知识点、重点、难点和考点有关的典型题做全析全解,是具有解题题典性质的助学读物。但本书又优于解题题典,不仅展示解题过程,更详细地提供了解题思考过程和切入点的选择方法,教方法导引思路的功能更强。 学生要提高解题能力,必须具备两个条件:一是打好基础,二是能够运动所学知识分析问题和解决问题。本书用例题解析解说知识点、重点、难点和考点,同时提供解题思考过程,在打基础中激活能力,在解题实......一起来看看 《八年级数学(华东师大版)-解题升级-解题快速反应一本通(新课标)》 这本书的介绍吧!