#README.txt *******20181217 优化相关记录********* ** 文件的上传、下载支持正则表达式解析 a、在paramiko_sh中新增上传/下载中识别Linux/UNIX通配符支持; b、在paramiko_sh/multistp中将原单文件/目录的遍历修改为解析通配符后再进行列表遍历 c、对原multistp(目录传输)新增文件传输功能兼容单文件传输 ** 对文件/文件夹的上传下载新增校验功能 a、新增本地/远程主机的md5值生成,并比较的功能; b、在paramiko_sh中上传与下载处理位置,新增md5值得判别,并进行出错处理(暂时直接终止) ** 新增文件续传功能 a、增加如果发现本地、远端文件的文件存在,进行md5的判别,如果判断成功,则不需要进行再次上传、下载。 b、暂时不针对大文件进行续传,后续再说; c、对于不需要重新上传的文件,对进度等信息显示,进行特殊处理。 ** 多进程传输、下载文件的方式改变 原方式为多进程,一边遍历任务中的文件夹,一边下载。现在由于需要提前知道任务总数后再进行下载,因此,做如下改动: a、对多进程任务处理,分为两个事件:任务搜寻(包含文件目录的建立)、文件下载/上传; b、在控制流程中新增两个事件的控制,这两个事件是相互独立的;一则可以明确此次任务,二则可以为以后用户的下载行为控制作铺垫; c、此次修改,搜寻任务与处理任务任是多进程;只是将事件进行了分离,可以这样认为。 ** 新增文件传输进度、速率、信息显示 a、对单进程的上传、下载增加了这些项目的显示,效果如下: 源文件名 100% 35kb/36kb 35KB/s 00:00:00(预计剩余时间) 00:00:00(花费总时间) xav 100% 28.81 KB/28.81 KB 28.81 KB/s 0:00:00 0:00:00 b、对于多进程并发,每隔2秒钟显示其总文件、总目录、当前文件进度,目前显示的效果如下(只针对于多任务处理),同时也会显示处理完毕的文件: 任务匹配名 100% 35kb/36kb 35KB/s 00:00:00(预计剩余时间) 00:00:00(花费总时间) 24 1500[当前正在处理的任务]/3000(文件传输) xav 100% 28.81 KB/28.81 KB 28.81 KB/s 0:00:00 0:00:00 multi_file_process 85% 215.46 MB/250.64 MB 1.02 MB/s 0:00:34 0:02:02 60 1128[5]/1133 ** 将主机信息存为json文件格式,程序读取信息改写为json配置读取 将原字典主机信息,修改为json文件配置。配置文件需要在源码中定义(暂定固定) ** 对程序中出现异常或返回值进行优化处理 处理时思路为: 1、对需要用到返回值的结构采用return的方式,或者需要退出结构时; 其他如值不对,这些可以采用raise异常处理,暂时不适用断言的方式。 如果捕获异常的地方无法做出处理,必须将异常进行上抛。 2、日志中,错误日志的处理:一般错误日志不会导致整体退出,特殊情况除外。 ** 优化pty的windows窗口大小设置 *****后续优化思路(暂定)***** ** 增加云主机功能:批量命令执行,批量数据同步; ** 增加技术文档API支持; ** 优化源码结构,充分汲取paramiko与fabfic功能与思路,并根据实际情况进行优化。 ********20181011 开发相关记录******* ***环境是在Linux/Unix主机之间**** ###需求 1、一台主机无密码登录其他主机进行操作(如同:SCRT) 2、不用登录其他主机就能实现主机命令执行 3、远程下载、上传文件 4、远程多并发上传、下载文件夹 5、操作方式类似于Linux scp/ssh命令操作 ###主要使用工具及技术 1、paramiko模块的shell、sftp、ssh相关功能; 2、多进程并发; 3、进程队列与事件的结合使用; 4、使用到多进程子嵌套的方式完成功能; 5、内置模块logging的使用; ###工具使用方式及相关说明如下: python sh_stp_main.py -xsh account@192.168.1.1 (执行一个远程xshell终端) python sh_stp_main.py -sh account@192.168.1.1 'df -h' (执行远程shell命令并返回结果) python sh_stp_main.py -put 本地文件 account@192.168.1.1:远程文件/目录(上传文件到远程主机) python sh_stp_main.py -get account@192.168.1.1:远程文件 本地文件/目录(从远程主机下载文件) python sh_stp_main.py -putdir 本地文件/目录 account@192.168.1.1:远程文件/目录(上传文件/目录到远程主机) (进程数,默认15) python sh_stp_main.py -getdir account@192.168.1.1:远程文件/目录 本地文件/目录(下载文件/目录到本地主机) (进程数,默认15) 在sh_stp_main.py的字典中定义主机相关信息;