首页 > 技术文章 > anki server 错误与解决

qq-757617012 2018-07-20 15:59 原文

anki 客户端

转载请注明出处 :http://www.cnblogs.com/qq-757617012/

 

1.无法同步

  •    是否突然停电,导致程序损坏(提示被防火墙或杀毒软件阻止)     anki客户端损坏 ,请下载客户端重新安装  https://apps.ankiweb.net/
  •    是否被防火墙阻挡
  •    是否开启了代理  可以在IE中 工具 internet选项  链接  局域网
  •    同步地址是否填写正确
  •    同步的正确姿势是 :
      • a. 检查数据库
      • b.检查媒体
      • c.同步--远程--下载--覆盖本地
      • d. 修改本地内容  e.同步-本地--覆盖远程服务器   

        其中,c和d如果顺序搞反了,通常会出错。因为本地版本和远程版本不是连续的版本。

 

anki server端

1.无法同步

  • 启动时production.ini是否正确

             anki-start.bat

在配置过环境变量,并设置为本地组策略,用户登录脚本时

ankiserverctl.py  start "F:\AnkiServer_3\production.ini"

或者(在不用登陆的计划任务--开机未登录时)

"C:\Python27\python2.exe"  "C:\Python27\Scripts\ankiserverctl.py" start  "F:\AnkiServer_3\production.ini"

 

  • 是否存在为关闭的 ankiserver进程

            anki-stop.bat

@echo off
setlocal enabledelayedexpansion
set port=27701
for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":%port%"') do (
    if "%%e%" == "" (
        set pid=%%d
    ) else (
        set pid=%%e
    )
    echo !pid!
    taskkill /f /pid !pid!
)
pause

 

  • 创建用户
 F:\AnkiServer_3> .\ankiserverctl.py adduser 111111 "F:\AnkiServer_3\production.ini"   根据提示输入密码
  • 删除用户
 F:\AnkiServer_3> .\ankiserverctl.py deluser 111111 "F:\AnkiServer_3\production.ini"

 

  • 查看列表用户
 F:\AnkiServer_3> .\ankiserverctl.py lsuser "F:\AnkiServer_3\production.ini"

2. 无视错误:

  •       IOError: [Errno 2] No such file or directory: '/tmp/ankiserver.pid'

 

 

 

 

3.ankiserver启动、关闭、重启时 无黑窗

  • restart.vbs
Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c F:\AnkiServer_3\anki-stop.bat"
oShell.Run strArgs, 0, false

Set oShell2 = CreateObject ("Wscript.Shell") 
 Dim strArgs2
 strArgs2 = "cmd /c F:\AnkiServer_3\anki-start.bat"
 oShell2.Run strArgs2, 0, false

 

 

  • start.vbs
Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c F:\AnkiServer_3\anki-start.bat"
oShell.Run strArgs, 0, false

 

 

  • stop.vbs
Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c F:\AnkiServer_3\anki-stop.bat"
 oShell.Run strArgs, 0, false

 

3.故障处理时,先做好备份

  • 将存放ankiserver的文件夹统一备份到别处特别是你的collections文件夹,这样有利于数据的恢复

                       image

  • 关于自动备份,我写了一个bat脚本 (目录不一定完全对应):  每天把anki-server的目录备份到一个特定的目录,然后由我的坚果云同步
@echo off
::设置7z的命令行程序路径
set Sz=%ProgramFiles%\7-Zip\7z.exe
  
::设置压缩包保存路径
set Save="E:\JianGuoYun\ankiserver_backup_daily"
  
::设置要打包压缩的文件夹
set Com=F:\AnkiServer_3

"%Sz%" a %Save%\AnkiServer_3__%date:~,4%-%date:~5,2%-%date:~8,2%.zip  "%Com%"\  
exit
  •       关于登录时执行脚本

  a.开始--运行--gpedit.msc

                          image

b. 用户设置--windows设置--脚本(登陆/注销)

                        image

注意:如果脚本通过手动启动,服务正常。而通过登陆时自动启动脚本不正常,应当 ①清理系统垃圾(注册表垃圾,临时文件清理) ②删掉本地组策略中的启动脚本再重新添加一次。

 

----------------------------------------2018年7月28日更新 增加了 任务计划程序--计算机启动时就执行(无论是否登陆)  此处不成功------------------------------------------------------------------------------------------------------

image

 

 

 

 

image

 

 

image

 

这一步显得不那么重要

 

image

虽然可以打包 .py 到 exe ,http://www.py2exe.org/index.cgi/Tutorial  https://www.cnblogs.com/JachinYin/p/6836891.html

但,总是各种缺少包错误, 我想,这不是我这个python初学者能解决的。先放弃,后面有机会,有实力了再解决。

PS C:\Python27\Scripts> .\ankiserverctl.exe start  "F:\AnkiServer_3\production.ini"
Traceback (most recent call last):
   File "ankiserverctl.py", line 4, in <module>
     __import__('pkg_resources').run_script('ankiserver==2.0.6', 'ankiserverctl.py')
ImportError: No module named pkg_resources

 

 

搞了半天,总是爆粗,原来存在两个ankiserverctl.py 文件,需要执行 py2exe的是 C:\Python27\Lib\site-packages\ankiserver-2.0.6-py2.7.egg\EGG-INFO\scripts\ankiserverctl.py

打包脚本:

from distutils.core import setup
import py2exe
setup(console=[{'script':'ankiserverctl.py'}],zipfile=None)

然后,在本目录命令行下执行:

C:\Python27\Lib\site-packages\ankiserver-2.0.6-py2.7.egg\EGG-INFO\scripts> python   setup.py   py2exe

在   C:\Python27\Lib\site-packages\ankiserver-2.0.6-py2.7.egg\EGG-INFO\scripts\dist 下就有 对应的exe文件了,将真格dist目录拷贝走去用

 

anki-start.bat文件 修改一下,由原来执行 py 改为执行 exe

"F:\AnkiServer_3\ankiserverctl.exe" start  "F:\AnkiServer_3\production.ini"

 

 

 

 

 

即使参考了网上文章,把它设为开机服务,服务成功运行,但我要的效果没有达到,至此,可以初步判断,应该不是ankiserverctl.exe没启动,而是启动后没有正常执行。

参考: Windows系统下不登陆自动启动程序

下载Instsrv.exe和Srvany.exe:  Windows Server 2003 Resource Kit Tools 安装后,在文件夹里面找这俩文件

 

 

为了保证vpn网络畅通,同样的操作也需要在蒲公英客户端来一遍

image

 

 

 

----------------------------------------结束 2018年7月28日 更新 增加了 任务计划程序--计算机启动时就执行(无论是否登陆)------------------------------------------------------------------------------------------------------

 

 

 

4.故障处理后,将collections 的文件解压缩进行恢复

                  image

 

 

PC端Anki 怎么连不上?

   你是不是开启了代理,忘记关了,或者关闭代理时出错了,导致代理设置仍在。

   就像这样image

执行下面的代码,一键清除IE浏览器代理:clearproxy.bat

@echo off 

echo 开始设置取消xproxy代理..........

echo 现在程序将关闭您的浏览器。。。。。
taskkill /f /im iexplore.exe
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f 
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /d "" /f 
color 2
echo 已取消代理服务器上网
echo 按任意键关闭此对话框
pause>nul

 

网友文章: http://www.cnblogs.com/birdofparadise/p/10013128.html

# 查看所有用户  ankiserverctl.py lsuser

# 添加anki账号:根据提示输入账号密码。(username@password) ankiserverctl.py adduser username

# 删除用户  ankiserverctl.py deluser username

# 查看帮助  ankiserverctl.py --help

 

 

转载请注明出处 :http://www.cnblogs.com/qq-757617012/

推荐阅读