数据每天压缩后自动上传FTP的实现方法.docx
- 文档编号:3193483
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:11
- 大小:26.15KB
数据每天压缩后自动上传FTP的实现方法.docx
《数据每天压缩后自动上传FTP的实现方法.docx》由会员分享,可在线阅读,更多相关《数据每天压缩后自动上传FTP的实现方法.docx(11页珍藏版)》请在冰豆网上搜索。
数据每天压缩后自动上传FTP的实现方法
CPDatalog每天自动上传FloorVision的脚本
PhilMaoAsofMar31,2015
1、服务器用“天机企业文件同步备份系统”或“SecondCopy”把每个测试机台的数据存放到服务器本地硬盘,注意:
本地硬盘的任何文件夹不能带空格(DOS批处理对带空格的文件夹要引号,引号用多了,容易出错。
)
2、设定服务器的日期格式为YYYY-MM-DD,如下图
3、在F盘建2个文件夹
F:
\ToFVServer\Analog
F:
\ToFVServer\Discrete
4、创建下面的脚本,并保存为.bat批处理文件。
1)复制*.st*,如*.std,*.std_1等,并自动上传到FloorVision
for/d%%fin(E:
\CPDatalog\Analog\2015\*)doxcopy/Y/D:
%date:
~5,10%-%date:
~2,2%%%f\*.st*F:
\ToFVServer\Analog//复制文件
F:
//进入F盘
CDToFVServer\Analog//切换到ToFVServer\Analog目录
for/f%%iin('dir/b*.*')do(if%%~zilss102400(del/f/q"%%i"))//删除<100K的文件
D:
//进入D盘
CDSoftware\FlashFXP//切换到Software\FlashFXP目录
flashfxp-uploadftp:
//diodes:
Mxme+09@@-localpath="F:
\ToFVServer\Analog\"-remotepath="/SKE_CP/"–quit//上传完自动退出
F:
CD\
CDToFVServer\Analog
mkdirF:
\ToFVServer\Analog_%Date%//新建Analog_%Date%,存放已上传数据
move*.*F:
\ToFVServer\Analog_%Date%//移动文件
2)复制*.jdf,并自动上传到FloorVision
说明:
SKEData在2015这个目录下
for/d%%fin(E:
\CPDatalog\Discrete\2015\*,E:
\CPDatalog\Discrete\2015\SKEData\*)doxcopy/Y/D:
%date:
~5,10%-%date:
~2,2%%%f\Data\*.jdfF:
\ToFVServer\Discrete//复制文件
F:
//进入F盘
CDToFVServer\Discrete//切换到ToFVServer\Discrete目录
for/f%%iin('dir/b*.*')do(if%%~zilss5120(del/f/q"%%i"))//删除<5K的文件
D:
//进入D盘
CDSoftware\FlashFXP//切换到Software\FlashFXP目录
flashfxp-uploadftp:
//diodes:
Mxme+09@@-localpath="F:
\ToFVServer\Discrete\"-remotepath="/SKE_CP/"–quit//上传完自动退出
F:
CD\
CDToFVServer\Discrete
mkdirF:
\ToFVServer\Discrete_%Date%//新建Discrete_%Date%,存放已上传数据
move*.*F:
\ToFVServer\Discrete_%Date%//移动文件
5、任务计划程序,创建一个每天23:
55分运行的任务,选中上述第4步建立的批处理文件作为执行文件。
数据就可以每天自动上传了。
Analog和Discrete同时上传的脚本:
不压缩&删除小于一定大小的数据不完整文件
在F盘建一个文件夹:
F:
\ToFVServer\rawdata
for/d%%fin(E:
\CPDatalog\Analog\2015\*)doxcopy/Y/D:
%date:
~5,10%-%date:
~2,2%%%f\*.st*F:
\ToFVServer\rawdata
F:
CDToFVServer\rawdata
for/f%%iin('dir/b*.*')do(if%%~zilss102400(del/f/q"%%i"))
for/d%%fin(E:
\CPDatalog\Discrete\2015\*,E:
\CPDatalog\Discrete\2015\SKEData\*)doxcopy/Y/D:
%date:
~5,10%-%date:
~2,2%%%f\Data\*.jdfF:
\ToFVServer\rawdata
for/f%%iin('dir/b*.*')do(if%%~zilss5120(del/f/q"%%i"))
D:
CDSoftware\FlashFXP
flashfxp-uploadftp:
//diodes:
Mxme+09@@-localpath="F:
\ToFVServer\rawdata\"-remotepath="/SKE_CP/"–quit
F:
CD\
CDToFVServer\rawdata
mkdirF:
\ToFVServer\rawdata_%Date%
move*.*F:
\ToFVServer\rawdata_%Date%
补充说明:
同一个语句中,单独运行和批处理运行,变量略有差异,即%和%%。
单独运行:
for/d%fin(E:
\CPDatalog\Analog\2015\*)doxcopy/Y/D:
%date:
~5,10%-%date:
~2,2%%f\*.st*F:
\ToFVServer\rawdata
批处理运行:
for/d%%fin(E:
\CPDatalog\Analog\2015\*)doxcopy/Y/D:
%date:
~5,10%-%date:
~2,2%%%f\*.st*F:
\ToFVServer\rawdata
数据上传方式的改进:
Apr8,2015
1、延迟1天或任意天上传
2、数据压缩方式:
(1)多个文件一起压缩到1个包内
(2)单个文件压缩
先前脚本总结:
优点:
用FlashFXP上传,只要外网是通的,不会出现上传失败的情况。
注意要设重新连接和上传次数为9999,防止可能的断网,FlashFXP会自动重连。
缺点:
因为使用SecondCopy软件,每隔1小时,2小时或4小时,抓数据,导致原设定的每天23:
55自动执行,可能出现当天的部分数据遗漏的情况(即恰逢SecondCopy最后一次没有执行)。
所以我增加了很多代码,改成了延迟一天上传:
即4月8日只上传4月7日这天的数据,4月7日只上传4月6日这天的数据,以此类推。
代码修改部分:
(1)用数据方法计算减1天的正确日期:
可以修改代码设定延迟任意一天。
(2)用forfiles命令(Win7,WindowsServer2003及以上包含这个命令)自动删除当天的文件。
比如4月8日上传的时候,删除4月8日的文件,防止重复上传。
(可以修改代码删除任意天之前或之后的文件)
(3)计划任务可设定在任意时间点运行:
但为了确保数据的完整性,目前我设定在5:
00am之后运行,这样可确保前一天数据的完整性。
Rem//延迟1天,并且TUGzip把多个文件压缩到1个包内,Analog和Discrete分开压缩//
@echooff
remGetdesignatedpreviousdate.DaysAgo=1meansgetthedate1daybefore.
setDaysAgo=1
remsystemdateformatshouldbeyyyy-mm-dd
call:
DateToDays%date:
~0,4%%date:
~5,2%%date:
~8,2%PassDays
set/aPassDays-=%DaysAgo%
call:
DaysToDate%PassDays%DstYearDstMonthDstDay
setCPYDate=%DstMonth%-%DstDay%-%DstYear%
echo%CPYDate%
remBeginofDiscreteCopyFilesandCompress
for/d%%fin(E:
\CPDatalog\Discrete\2015\*,E:
\CPDatalog\Discrete\2015\SKEData\*)doxcopy/Y/D:
%CPYDate%%%f\Data\*.jdfF:
\ToFVServer\Discrete
F:
CDToFVServer\Discrete
del/f/qSP*.jdf
for/f"delims="%%iin('dir/b*.*')do(if%%~zilss10240(del/f/q"%%i"))
CD\
forfiles/PF:
\ToFVServer\Discrete/M*.*/D%Date%/C"cmd/cdel/F/Q@file"
D:
CD\
CDSoftware\TUGZip
TzScript-v4DiscreteToFV.tzs
CD\
F:
CDToFVServer\Discrete
mkdirF:
\ToFVServer\Backup\Discrete_%Date%
move*.*F:
\ToFVServer\Backup\Discrete_%Date%
CD\
remEndofDiscreteCopyFilesandCompress
remBeginofAnalogCopyFilesandCompress.UploadingBothDiscreteandAnalogCompressedFile.
for/d%%fin(E:
\CPDatalog\Analog\2015\*)doxcopy/Y/D:
%CPYDate%%%f\*.logF:
\ToFVServer\Analog
for/d%%fin(E:
\CPDatalog\Analog\2015\*)doxcopy/Y/D:
%CPYDate%%%f\*.st*F:
\ToFVServer\Analog
F:
CDToFVServer\Analog
for/f"delims="%%iin('dir/b*.*')do(if%%~zilss102400(del/f/q"%%i"))
CD\
forfiles/PF:
\ToFVServer\Analog/M*.*/D%Date%/C"cmd/cdel/F/Q@file"
D:
CDSoftware\TUGZip
TzScript-v4AnalogToFV.tzs
CD\
CDSoftware\FlashFXP
flashfxp-uploadft
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 每天 压缩 自动 上传 FTP 实现 方法