SyncY更新(V2.2.0)

2015-04-17

少数网友升级到2.2.0后报“TypeError: unhashable type”错误,我在我这怎么测试,怎么执行相关代码都不报这个错误,不知道是什么原因导致的,可以采用变通方法解决,操作方法如下:

1、先用2.1.2版同步完成所有文件(必须都全部同步成功),然后停止2.1.2版程序;
2、备份每个同步目录跟目录下的.syncy.info.db文件;
3、替换新的程序文件,并执行/usr/bin/syncy.py rebuild(如果安装路径不是/usr/bin,根据实际安装路径修改);
4、如果第3步执行成功就完成了,如果第3步执行出错就重复执行第3步,第3步没有执行成功切不可直接运行程序,否则将重新同步所有文件。

rebuild命令就是重建同步信息数据,但重建前必须保证云端和本地文件一致,否则不一致的文件下次同步时也不会再同步了。

2015-04-09    今天对luci界面做了优化,解决了在日志文件不存在是导致界面无法显示的问题,下载安装v2.2.0-2即可,非luci的程序文件没有变化。

V2.2.0更新注意事项:2.2.0版本升级了同步信息数据格式,在启动新版程序时,程序会自动升级数据,并把原数据备份到.syncy.info.db.bak文件,运行了新版程序后,不可在运行旧版本程序,否则可能导致所有数据重新同步,甚至数据丢失!!!

更新内容:

2015-04-06
v2.2.0
1、优化了云端目录的设置,云端目录设置可兼容识别以“/apps/SyncY”和“/我的应用程序/SyncY”开头的设置。
2、优化块大小设置项,如果上传文件的大小/1024大于设置的块大小,上传此文件是块大小将临时调整为文件大小/1024,其它时候上传或下载的块大小由配置项决定。
3、增加了上传单个文件超过20G前的报错提示,以防止上传很长时间后导致无法合并大文件的错误而浪费很多上传时间(如需上传大于20G的文件,建议用压缩工具分片压缩或其它工具对文件进行分割,使单个文件小于20G)。
4、上传和下载限速设置支持单位K、M,如:100K = 100 * 1024 byte/s。
5、配置的云端同步根目录不存在时将会创建,以解决云端根目录不存在时运行报错的问题。
6、升级了同步信息数据版本,以解决某些特殊情况下进行文件修改时间转码时报整数越界的问题。
7、简化日志浏览,合并运行日志和错误日志输出,通过标识来区别是错误消息还是普通信息(ERROR–错误信息,WARNING–警告信息,INFO–普通运行信息),只保留syncylog配置项,取消了syncyerrlog配置参数。

下载地址:http://www.syncy.cn/index.php/download/
配置说明:http://www.syncy.cn/index.php/syncyconfighelp/
安装配置方法:http://www.syncy.cn/index.php/syncysetup/

SyncY更新(V2.2.0)》上有13条评论

  1. llg

    2015-04-16 19:09:30 INFO: Multi thread test success.
    2015-04-16 19:09:30 INFO: PCS quota is 3087G,used 15G.
    2015-04-16 19:09:30 INFO: Start sync path “/mnt/sda1/llg:/apps/SyncY/Pogo/llg:upload+”.
    2015-04-16 19:09:32 INFO: Start upgrade sync info data(/mnt/sda1/llg/.syncy.info.db).
    Traceback (most recent call last):
    File “/usr/bin/syncy.py”, line 2058, in
    sy.start()
    File “/usr/bin/syncy.py”, line 1445, in start
    self.__start_sync()
    File “/usr/bin/syncy.py”, line 1165, in __start_sync
    if self.__check_upgrade_syncdata(SyncY.syncydb, localpath, remotepath) != 0:
    File “/usr/bin/syncy.py”, line 1331, in __check_upgrade_syncdata
    ret = self.__upgrade_syncdata(ldir, rdir, syncdata, sydbnew)
    File “/usr/bin/syncy.py”, line 1382, in __upgrade_syncdata
    if self.__upgrade_syncdata(lfullpath, rfullpath, syncdata, sydbnew) != 0:
    File “/usr/bin/syncy.py”, line 1382, in __upgrade_syncdata
    if self.__upgrade_syncdata(lfullpath, rfullpath, syncdata, sydbnew) != 0:
    File “/usr/bin/syncy.py”, line 1382, in __upgrade_syncdata
    if self.__upgrade_syncdata(lfullpath, rfullpath, syncdata, sydbnew) != 0:
    File “/usr/bin/syncy.py”, line 1401, in __upgrade_syncdata
    sydbnew.write(‘%s%s%s’ % (fnmd5, struct.pack(‘>qqqq’, struct.unpack(‘>I’, syncdata[oldfnmd5][16:20])[0], struct.unpack(‘>I’, syncdata[oldfnmd5][20:24])[0], rfnlist[i][‘mtime’], rfnlist[i][‘size’]), syncdata[0:16]))
    TypeError: unhashable type

    我的升级安装步骤:
    opkg install /mnt/sda1/llg/SyncY-Python-luci_2.2.0-2_all.ipk
    cp -rf /mnt/sda1/llg/config/syncy /etc/config/syncy
    cp -rf /mnt/sda1/llg/syncy.py /usr/bin/syncy.py

    回复
    1. WishInLife 文章作者

      你好,我在我这怎么测试,怎么执行相关代码都不报这个错误,有少数几个网友反馈这个问题,不知道是什么原因导致的,可以采用变通方法解决,操作方法如下:
      1、先用2.1.2版同步完成所有文件(必须都全部同步成功),然后停止2.1.2版程序;
      2、备份每个同步目录跟目录下的.syncy.info.db文件;
      3、替换新的程序文件,并执行/usr/bin/syncy.py rebulid(如果安装路径不是/usr/bin,根据实际安装路径修改);
      4、如果第3步执行成功就完成了,如果第3步执行出错就重复执行第3步,如果第3步没有执行成功切不可直接运行程序,否则将重新同步所有文件。
      rebuild命令就是重建同步信息数据,但重建前必须保证云端和本地文件一致,否则不一致的文件下次同步时也不会再同步了。

      回复
      1. llg

        我使用 “单向上传,重名覆盖” 方式备份。
        少数不同步文件就算了。 我能否直接执行你说的 第三步?

        回复
      2. llg

        2015-04-20 21:52:44 WARNING: Unknown command “rebulid”

        =====================================
        # Update date: 2015-04-06
        # VERSION: 2.2.0

        回复
  2. 幼稚园

    时常出现Segmentation fault,Illegal instruction,Bus error错误。
    我用的极路由2,型号是HiWiFi HC5661,Ralink MT7620A ver:2 eco:6,固件是OpenWrt Barrier Breaker 14.07 r44162 by 明月永在。
    在Puty下,输入sync.py有如下提示,
    root@OpenWrt:/etc/init.d# python /usr/bin/syncy.py
    Segmentation fault
    root@OpenWrt:/etc/init.d# python /usr/bin/syncy.py
    Illegal instruction
    root@OpenWrt:/etc/init.d# python /usr/bin/syncy.py
    Segmentation fault
    但是多试几次就会成功!多数是Segmentation fault错误。
    syncy运行一段时间后会自动退出,使用CPU使用限制会延长退出时间。
    root@OpenWrt:/etc/init.d# ps | grep syncy
    27220 root 1476 S grep syncy
    [1]+ Illegal instruction python /usr/bin/syncy.py

    回复
    1. WishInLife 文章作者

      在多线程版刚出来的时候Segmentation fault是经常出现,后面发现libcurl里调用openssl的相关内容存在非线程安全,但libcurl里面有个参数能尽可能避免这种情况的发生(这个是curl官方说不能绝对避免,但已经尽可能避免了),之后我这就没在出这个错了,因此,你看看你设备可用的libcurl和openssl能不能升级,如有新版本最好安装最新的版本(群里也有一网友,开始经常没有任何错误日志就推出了,之后升级了openssl后就没这个问题了),如果syncy是老版本,建议升级到新的版本。

      回复
  3. 北门红树热

    UnicodeDecodeError: ‘utf8′ codec can’t decode byte 0xc7 in position 89: invalid continuation byte
    ubuntu14.04上报错,请问这个怎么解决?

    回复
    1. WishInLife 文章作者

      用的是最新的2.2.0版吗?这个错应该是有字符无法转成UTF8,看看你的文件名中是不是有什么特殊字符。

      回复
  4. lion

    我安装在PandoraBox上,luci界面可以正常打开和设置,但是有一些问题:
    1、点了luci界面的启动按钮后我ps一下后台,发现软件没有启动,需要在ssh里开启才行,不知道是不是luci界面在调用的时候有问题。
    2、luci界面里点需 绑定百度帐号 后显示 获取用户码失败!,我ssh启动了syncy.py后也无法获取用户码。

    回复
    1. WishInLife 文章作者

      看你的描述应该是哪有问题,pycurl的可能性比较大,你不要设置日志文件,然后启动程序看看报什么错误,知道具体的错误后就知道是哪一块的问题了。

      回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注