标签归档:Blowfish

SyncY更新(V2.5.3)

更新内容:

2015-09-12
v2.5.3
1、解决了Sync模式下会存在空文件夹的情况,但还会有两种情况空文件夹无法自动删除:一是新建的文件夹为空,之后同步了一次且不包含普通文件,然后删除一端的空文件夹,在下一次同步时还会再次创建此删除的文件夹;二是某个文件夹下面的内容被清空,但文件夹还在,在之后同步完成之后,再删除一端的文件夹,再在下一次同步的时候,这个文件将会被创建。只有被删除文件夹的下面包含有普通文件,对应端的相应文件夹在同步时才会被删除。

GitHub下载:https://github.com/wishinlife/SyncY
本地下载地址:http://www.syncy.cn/index.php/download/
配置说明:http://www.syncy.cn/index.php/syncyconfighelp/
安装配置方法:http://www.syncy.cn/index.php/syncysetup/

SyncY更新(V2.5.1)

更新内容:

2015-05-26
v2.5.1
1、解决了在创建远程目录和秒传文件时报ValueError: No JSON object could be decoded的错误(只有v2.5.0版有此bug)。

GitHub下载:https://github.com/wishinlife/SyncY
本地下载地址:http://www.syncy.cn/index.php/download/
配置说明:http://www.syncy.cn/index.php/syncyconfighelp/
安装配置方法:http://www.syncy.cn/index.php/syncysetup/

SyncY更新(V2.5.0)

更新内容:

2015-05-20
v2.5.0
1、新增加密支持,每个同步目录设置节下面新增encryption和encryptkey两个配置项,encryption为’0’时不加密,为’1′-ARC4加密,’2′-Blowfish加密,’3′-AES加密,encryptkey为加密密钥,长度必须为8-32位字符,如启用加密必须安装包python-crypto,不启用加密可以不安装python-crypto包,也可以不设置encryption和encryptkey配置项。一旦启用加密,请牢记密钥及设置的加密方法,将来下载文件时加密密钥或加密方法错误将会导致下载的文件数据不正确。某个同步文件夹一旦设置为启用加密,所有上传和下载的文件都将进行加密或解密操作,因此云端的加密文件夹下面请勿手动添加明文文件!如果已有文件上传至云端,要想修改加密方法或密钥,最好全部重新上传所有文件,否则会导致云端存在不同加密方法或密钥加密出来的文件,将来下载时将无法区分,导致部分文件无法解密!
2、新增windows系统支持,只要在windows系统上安装了python2.7及pywin32、pycurl、pycrypto包即可正常运行,我在win7系统上运行一切正常。windows系统上配置文件默认在一个文件下下面,如果不在一个文件夹下面,请修改syncy.py文件中的配置文件地址。windows系统的文件夹分隔符请使用“/”,而不要使用windows默认的“\”

注意:v2.5.0支持修改字符集,但也不要随意修改,以前已同步过文件,又没有问题的一定不要修改,否则可能导致所有文件全部重新同步!!!

如果是从2.2.0之前版本升级过来的,请参考v2.2.0更新说明

GitHub下载:https://github.com/wishinlife/SyncY
本地下载地址:http://www.syncy.cn/index.php/download/
配置说明:http://www.syncy.cn/index.php/syncyconfighelp/
安装配置方法:http://www.syncy.cn/index.php/syncysetup/

SyncY安装配置方法

一、环境准备

1、Python版的安装:
在openwrt12.09系统必须安装如下包:

libcurl
libopenssl
kmod-nls-utf8
Python
python-curl

安装以上包需要4M左右的空闲空间,如空间空间不足,只有通过u盘来扩展了,这个是没法精简了,除非有能人自己编译把不需要的删除了。 如是其它版本系统,请对应的安装相应的包。

Windows系统上安装SyncY:
分别安装如下几个包

python2.7
pywin32
pycurl
pycrypto

以上包在本地下载里面有下载。windows系统上配置文件默认和程序文件在一个文件夹下面,如果不在一个文件夹下面,请修改syncy.py文件中的配置文件地址。配置文件中设置的文件夹分隔符请使用“/”,而不要使用windows默认的“\”,如D盘下的test目录,请设置为“d:/test”。Windows系统默认字符集为GBK,如果同步下来的中文文件名存在乱码,请根据自己的系统环境修改字符集,用编辑器打开syncy.py文件,搜索“__CHARSET__ = ‘GBK’”,把GBK改成需要的字符集即可。

加密设置注意事项(v2.5.0及之后版本):

        一旦启用加密,请牢记密钥及设置的加密方法,将来下载文件时加密密钥或加密方法错误将会导致下载的文件数据不正确。某个同步文件夹一旦设置为启用加密,所有上传和下载的文件都将进行加密或解密操作,因此云端的加密文件夹下面请勿手动添加明文文件!如果已有文件上传至云端,要想修改加密方法或密钥,最好全部重新上传所有文件,否则会导致云端存在不同加密方法或密钥加密出来的文件,将来下载时将无法区分,导致部分文件无法解密!

加密设置请参考配置文件说明

Perl和Bash版已不再提供支持,请安装Python版,Python V2版支持多任务多线程,功能更强。
2、Perl v1.0.4版的安装:
1.0.4 Perl版及之后的是精简过后的,安装包少了不少,安装空间占用在1M左右,安装包如下:

libcurl
libopenssl

kmod-nls-utf8
perl
perlbase-essential
perlbase-digest
perl-www-curl
perlbase-xsloader
perlbase-dynaloader
perlbase-config
perlbase-autoloader
perlbase-utf8

 如是其它系统,请对应的安装相应的包,在cpan.org网站上可通过perlbase-后面的名称来搜索相应的包并下载源码,各个包还可能依赖别的包,如运行报错,提示缺少包,请根据提示安装相应的包。

3、Bash版的安装:
Bash版的安装在openwrt上需要以下包:

curl
libopenssl
kmod-nls-utf8
bash

bash版本最好是4.2的,3.x版的使用存在一些问题,curl能安装最新版最好安装最新版,其他类型系统请对应安装相应的包。

二、安装SyncY

1、OpenWrt系统(含luci界面): OpenWrt系统安装最新的luci版本(只有Python和Perl语言的有)的,下载安装包并上传到tmp目录,完成后执行 #opkg install /tmp/SyncY-Python-luci_1.0.10-1_all.ipk(Perl版对于修改文件名),后面的配置从luci界面配置即可。

2、ssh安装:
a)、复制配置文件syncy到/etc/config目录下,复制syncy.py到/usr/bin目录下,授予syncy.py可执行权限;
b)、执行syncy.py获取用户码, 获取用户码后按照提示打开百度授权页面https://openapi.baidu.com/device,如下图:
a1.jpg
输入用户码(用户码有效期30分钟),输入完成用户码后点“继续”按钮进入授权确认界面,如下图:
a2.jpg
最后点“授权”完成授权。
a3.jpga4.jpg
c)、完成授权后回到ssh终端按回车键完成本地的授权操作,但显示“Get device token success.”表示授权完成。

三、设置自动启动

只适用于OpenWrt系统不含luci的Python版和Perl版,含luci的在安装时已经设置了相应内容,只需要在luci界面上配置即可,bash版只能通过计划任务来设置。
在/etc/init.d目录下建立syncy文件并授予可执行权限,文件内容如下:

#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2011 OpenWrt.org

START=99
STOP=10

start() {
/usr/bin/syncy.py &
}

stop() {
[ -e /var/run/syncy.pid ] && {
sypid=$(cat /var/run/syncy.pid)
kill $sypid
}
}

restart() {
[ -e /var/run/syncy.pid ] && {
sypid=$(cat /var/run/syncy.pid)
kill $sypid
}
sleep 1
/usr/bin/syncy.py &
}

保存文件并执行#/etc/init.d/syncy enable来启用自动启动,Perl版对应的吧syncy.py改成syncy.pl。其他类型的系统请参照设置,不了解的可以百度一下。

SyncY配置文件说明

Perl 1.0.7和Python 1.0.13版及之后版本,配置文件说明如下:
已添加V2多线程版新增的配置项说明

config syncy

option syncyerrlog ”  #错误日志文件名(必须包含完整路径名),为空时则不记录。(V2.2.0版取消了此配置项,)
option syncylog ”    #日志文件名(必须包含完整路径名),为空时则不记录。
option blocksize ’10’  #分片上传或下载大小,单位M。
option ondup ‘rename’  #重名文件处理方式,rename:重命名,overwrite:覆盖。
option datacache ‘on’    #是否开启同步信息缓存,on:开启,off:关闭。
option slicedownload ‘on’    #是否开启分片下载,on:开启,off:关闭(python 1.0.15版新增)。(v2多线程版删除了此配置项,多线程必须分片下载)
option excludefiles ‘*/Thumbs.db’  #排除文件设置,支持通配符*,多个排除选项用分号(;)隔开。
option listnumber ‘100’  #每次获取云端文件列表数量。
option retrytimes ‘3’   #发生错误后的重试次数。
option retrydelay ‘3’   #发生错误后的重试延时。
option maxsendspeed ‘0’   #最大上传速度,单位 byte/s,0表示不限速。
option maxrecvspeed ‘0’   #最大下载速度,单位 byte/s,0表示不限速。
option syncperiod ‘0-24’   #同步程序运行时间段。
option syncinterval ‘3600’   #每次同步完成后到下次同步间隔时间。
option speedlimitperiod ‘0-0’   #限速时间段 (v2多线程版新增)
option tasknumber ‘2’        #同时同步的任务数(v2多线程版新增)
option threadnumber ‘2’     #每个任务的线程数(v2多线程版新增)

config syncpath

option localpath ‘/mnt/example’  #本地同步目录
option remotepath ‘/example’     #云端目录(与/我的应用程序/SyncY的相对目录)
option enable ‘1’                #1-启用,0-停用
option synctype ‘upload’         #同步类型,支持的类型有:upload,upload+,download,download+,sync
option encryption ‘0’     #是否启用加密,0-不启用 ,1-启用、采用ARC4加密算法,2-启用、采用Blowfish加密算法,3-启用、采用AES加密算法   (v2.5.0版新增)
option encryptkey ‘this is encrypt key’     #加密密钥,必须为8-32位字符   (v2.5.0版新增)

旧版本配置文件说明如下(新版配置文件相应项与旧版相同,可参照旧版说明):

以下说明适合Python和Perl版,OpenWrt系统上安装的luci版,请对照说明设置相应的值即可。

syncpath=”
#  同步目录设置
#Perl 1.0.7和Python 1.0.13版取消了此配置项。

#  把本地指定的目录同步至服务器端指定的目录,有多个目录需要同步时以分号(;)隔开
#  例:’/mnt/sda1/Backup:/Backup:0;/mnt/sda1/album:/album:sync’
#  格式为:本地目录:服务器端目录:同步类型(localdir:remotedir:synctype),服务端目录是相对于“/我的应用程序/SyncY”目录的相对目录
#  文件名或路径中不能有以下字符:\\?|”<>:*  ,根目录中还不能有单引号(‘)
#  文件名或路径名开头结尾不能是“.”或空白字符,空白字符包括:\r,\n,\t,空格,\0,\x0B
#  synctype:[0-4]
#    [0,upload]:只检查本地文件并上传修改过的文件,忽略远端的所有修改或删除,远端删除的也不再上传
#    [1,upload+]:远端是本地的完全镜像,忽略远端的修改,远端删除的文件在下一次同步时将上传,远端新增的文件如果本地不存在,将不做任何变化
#    [2,download]:只检查远端文件是否修改,如有修改下载到本地,忽略本地的修改;如本地文件被删除,将不再下载
#    [3,download+]:检查远端和本地文件,如远端有修改,下载到本地,忽略本地的修改;如本地有文件被删除,将重新下载
#    [4,sync]:同时检查远端和本地文件,如只有远端被修改,则下载到本地;如只有本地修改,则上传到远端;如本地和远端都被修改,则以冲突设置方式为准。
#    0-3模式下,目的端自主新增的文件不会被删除
#   4模式下,当远端目录更改后,请删除本地同步根目录下的.syncy.info.db文件,否则在下次同步时将会删除本地的所有文件(系统会认为远程文件不需要被用户删除,也会删除本地的相应文件)

syncyerrlog=”
#  错误日志文件(包含路径名),为空时将输出至错误输出(默认屏幕)
# 设置值必须是指向文件,文件可以不存在(不存在时程序自动创建),父目录必须存在,不能指向已存在的目录
# 例:/mnt/sda1/log/syncyerr.log

syncylog=”
#  运行日志文件(包含路径名),为空时将输出至标准输出(默认屏幕)
# 设置值必须是指向文件,文件可以不存在(不存在时程序自动创建),父目录必须存在,不能指向已存在的目录
# 例:/mnt/sda1/log/syncy.log

blocksize=’10’
# 分片上传块大小
#  默认值为 10 (10M)
#  单位 M,此大小决定了能上传的最大文件大小(文件最大大小 = blocksize * 1024)
#  分片大小必须大于等于1(1M)

ondup=’rename’
# 重名处理方式
#  默认值为 ‘rename’
#  [rename or overwrite]
#  存在重名文件时是覆盖同名文件,还是重命名文件
#  当同步模式为0,重命名新文件,命名规则为“文件名_日期.后缀”
#  同步模式为1和2时,将重命名旧文件,命名规则为“文件名_old_日期.后缀”
#  同步模式为3时,则ondup只能为overwrite,设置成rename将不生效

datacache=’on’
# 是否开启缓存
# 默认值为 ‘on’
# 同步信息数据缓存,启用有助于提高同步速度
# 请根据你路由内存的大小来决定是否开启

excludefiles=’*/Thumbs.db’
# 排除文件或文件夹,将会同时应用于本地和远端,请合理设置此值,过多的排除选项将会降低系统的处理速度
# 有多个排除项时用分号(;)隔开
# 例:’*/Thumbs.db;*/excludefilename.*’
# 默认排除以“.tmp.syy”结尾的文件,此类型文件用于记录分片上传或断点下载信息,上传或下载完成后将自动删除,如原文件被手动修改,建议同时删除此文件
# 只支持通配符*? (*代表零个或更多个任意字符,?代表零个或一个字符)

listnumber=’100′
# 每次检查获取远程的文件数
# 默认值为 100
# 同步时每次获取的远端文件列表数量,数量过大时返回的字符串长度很大,将占用更多的内存
# 路径长度较长时也应适当缩小此值

retrytimes=’3′
#失败重试次数(发生错误时的重试次数)
# 默认值 3 次

retrydelay=’3′
# 重试延时时间(秒)
# 默认值为 3 秒

maxsendspeed=’0′
# 最大上传速度(字节/秒)
# 默认值为 0(不限速)

maxrecvspeed=’0′
# 最大下载速度(字节/秒)
# 默认值为 0(不限速)

syncperiod=’0-24′
# 运行时间段
# 默认值为 ‘0-24′
# 运行时间段(小时)
# 判断规则为[0,24)即包含设定的开始时间截止于设定的结束时间
# 如想从零点至6点之间才允许运行,应设置为’0-6’,如24小时都运行,则设置为’0-24’
# 如果当前时间不在设定范围内,将每5分钟检查一次,如果设为空,则只运行一次后退出

syncinterval=’3600′
# 同步间隔时间
# 默认值为 3600(1小时)
# 每次同步完成之后与下一次开始同步的间隔时间
# 单位:秒