ftp下载报表,整理,再通过sftp上传

本文介绍了一个Windows BAT脚本,用于自动从FTP服务器下载北向性能文件,包括使用VB脚本获取昨日日期,通过FTP命令从多个服务器下载特定格式的文件,并使用WinRAR压缩和通过SFTP上传至另一服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

windows的bat脚本: 

@rem 注释:从ftp服务器每小时下载北向性能文件的脚本

@rem 用vb脚本取昨天
for /f %%a in ('cscript //nologo yester.vbs') do set yesterday=%%a

cd data

@rem 2019-05-21中的 - 是拼接出来的
mkdir %yesterday%

cd %yesterday%


@rem 注释:关闭屏幕打印
@Echo Off

@rem 注释:ftp内部命令写入ftp.up文件,第一步登陆服务器地址
Echo open 10.204.197.100 >ftp.ini

@rem 注释:按ftp命令提示输入用户名
Echo omcrftp>>ftp.ini

@rem 注释:按提示输入密码
Echo sh_dt_3g>>ftp.ini

@rem 注释:进入ftp的nms/pm北向性能文件目录
Echo Cd pm/reports/%yesterday:~0,4%-%yesterday:~4,2%-%yesterday:~6,2% >>ftp.ini

@rem 注释:ftp使用二进制传输方式
Echo binary>>ftp.ini

@rem 注释:关闭ftp询问是否下载的提示
Echo prompt>>ftp.ini

@rem 
Echo mget EC*>>ftp.ini

@rem 下载另外一套网管的报表
Echo disconnect>>ftp.ini
Echo open 10.204.195.100 >>ftp.ini
Echo omcrftp>>ftp.ini
Echo sh_dt_3g>>ftp.ini
Echo Cd pm/reports/%yesterday:~0,4%-%yesterday:~4,2%-%yesterday:~6,2% >>ftp.ini
Echo binary>>ftp.ini
Echo mget EC*>>ftp.ini


@rem 注释:退出ftp
Echo bye>>ftp.ini

@rem 注释:使用ftp命令-s功能调用已写入ftp.up临时文件中的上述指令
FTP -s:ftp.ini

@rem 注释:删除临时指令文件ftp.up
del ftp.ini /q


mkdir 本溪

move *本溪* 本溪

mkdir 丹东

move *丹东* 丹东

mkdir 抚顺

move *抚顺* 抚顺

mkdir 葫芦岛

move *葫芦岛* 葫芦岛

mkdir 锦州

move *锦州* 锦州

mkdir 195小北向

cd 195小北向

Echo open 10.204.195.140 >ftp.ini
Echo omcrftp>>ftp.ini
Echo sh_dt_3g>>ftp.ini
Echo Cd /export/home/omcr/UMS8800_WKM_TDL_V3.0.0_26_20171013/LTE_WKM/webapps/WKMService/reportfile/计划报表/%yesterday% >>ftp.ini
Echo binary>>ftp.ini
Echo prompt>>ftp.ini
Echo mget ENB/小时报表>>ftp.ini
Echo mget ENB/天报表>>ftp.ini
Echo bye>>ftp.ini

FTP -s:ftp.ini
del ftp.ini /q

del *全网* /q

cd ..

mkdir 197小北向

cd 197小北向

Echo open 10.204.197.140 >ftp.ini
Echo omcrftp>>ftp.ini
Echo sh_dt_3g>>ftp.ini
Echo Cd /export/home/omcr/UMS8800_WKM_TDL_V3.0.0_26_20171013/LTE_WKM/webapps/WKMService/reportfile/计划报表/%yesterday% >>ftp.ini
Echo binary>>ftp.ini
Echo prompt>>ftp.ini
Echo mget ENB/小时报表>>ftp.ini
Echo mget ENB/天报表>>ftp.ini
Echo bye>>ftp.ini

FTP -s:ftp.ini
del ftp.ini /q
del *全网* /q

cd ../..

"C:\Program Files\WinRAR\WinRAR.exe" a -ibck -m5 %yesterday%.rar %yesterday%

Echo cd /whq/ec >sftp.ini
Echo mput %yesterday%.rar >>sftp.ini

@rem 注释:需要安装putty的psftp.exe,并设置环境变量,网址http://www.putty.org/
psftp huangyunfei@10.204.205.251 -P 2221 -pw 1234abcd -b sftp.ini

del sftp.ini /q

 yester.vbs(计算日期,按yyyymmdd格式输出字符串)

d = date() - 1
wscript.echo year(d) * 10000 + month(d) * 100 + day(d)

注意:

windows命令行不支持sftp,需要下载安装putty的psftp.exe,并在path环境变量中加入psftp.exe所在文件夹,网址http://www.putty.org/

 

psftp命令与ftp命令相似,简单介绍使用的几个参数:

psftp huangyunfei@10.204.205.251 -P 2221 -pw 1234abcd -b sftp.ini

huangyunfei@10.204.205.251     是用户名@主机名

-P 2221                                         是端口号

-pw 1234abcd                               是密码

-b sftp.ini                                       是登录sftp后需要执行的sftp命令(需要预先写到一个文件中,本例中这个文件是sftp.ini)

 

mput %yesterday%.rar

运行时,%yesterday%会替换成具体日期,比如今天是2019年6月10日,则替换为:

mput 20190609.rar

psftp> help mput
mput [ -r ] [ -- ] <filename-or-wildcard> [ <filename-or-wildcard>... ]
  Uploads many files to the server, storing each one under the
  same name it has on the client side. You can use wildcards
  such as "*.c" to specify lots of files at once.
  If -r specified, recursively store files and directories.

注意:mput的参数只有原文件名,不能指定目的文件名或者目的路径

 

参考:

PSFTP工具传输文件的命令使用方法

https://blog.youkuaiyun.com/chen_gp_x/article/details/79299863

putty psftp 上传文件夹或上传文件到linux

https://jingyan.baidu.com/article/d169e18658995a436611d8ee.html

putty提供的两个文件传输工具PSCP、PSFTP详细介绍

https://blog.youkuaiyun.com/liminlimin_limin/article/details/17287791

ftp、sftp利用bat脚本自动下载以及上传文件

https://blog.youkuaiyun.com/maimai1993/article/details/79171674

官网:

http://www.putty.org/

怎么上官网:

https://github.com/Alvin9999/new-pac/wiki/ss%E5%85%8D%E8%B4%B9%E8%B4%A6%E5%8F%B7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值