在windows上用bat自动拉取服务器上的文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果远程机器开了ftp服务,那么可以在win上用ftp命令拉取。脚本如下
FTP.bat
:路径写在bat文件中,可以支持中文路径
@echo off
:记载每次执行的年月日到一个日志文件中 可以自行修改
echo %date:~0,10%>>D:\Win7系统文件夹\Desktop\工作\日常检查\日志归档\我用的
FTP\v1.1\ftp.log
:进入D盘 cmd中的固定写法 必须先进入D盘才能进入到D盘下面的目录
D:
:进入到D盘的某个目录 此处将作为ftp获取文件后的默认目录
cd D:\Win7系统文件夹\Desktop\工作\日常检查\日志归档
:ftp命令 参数引用ftp.txt
ftp s:D:\Win7系统文件夹\Desktop\工作\日常检查\日志归档\我用的FTP\v1.1\ftp.txt>>D:\Win7系统文件夹\Desktop\工作\日常检查\日志归档\我用的FTP\v1.1\ftp.log
:退出
exit
ftp.txt的内容如下 红色部分为注释 请删除
prompt off关闭交互模式
open 133.64.94.99连接到哪台机器
oracle用户名
Pdh2_ab密码
cd /home/oracle
mget sun_check_*log*批量获取sun_check_*log*格式的文件 *为通配符
mdelete sun_check_*log*批量删除sun_check_*log*格式的文件 如果只删除一个文件 并知道具体文件名的话 也可以用delete命令 语法相同 但是delete命令只支持一次删一个 且不支持通配符close关闭该连接
bye退出FTP模式
如果有多台机器需要操作 则在txt文件中重复open到close的内容
有些远程机器仅打开了sftp服务 win上并不支持该命令 此时想要达到童谣的目的,则需要安装winscp
官档为https:///eng/docs/lang:chs 此软件免费 直接下载安装即可 中途一直下一步 和安装一个QQ一样简单 我安装的路径在 d:\Program Files\WinSCP
新建一个sftp.bat文件 内容如下
D:
cd d:\Program Files\WinSCP
winscp.exe /console /command "option batch continue" "option confirm off" "option transfer binary" /script=D:\Win7系统文件夹\Desktop\工作\日常检查\日志归档\winscp\sftp.txt /log=D:\Win7系统文
件夹\Desktop\工作\日常检查\日志归档\sftp.log
:command后面跟的是所有使用到的命令参数每个参数用双引号引起来 以空格隔开 option batch continue默认批处理 option confirm off 关闭提示信息 option transfer binary使用二进制格式传送
:script=后面跟的是txt文件位置 此参数可省略 把相关参数以命令的形式全部写在bat里 但是这样的话就必须全部写在一行里 看起来比较长 也比较费事 格式如winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://user:pwd@ip:port" "option transfer binary" "put D:\需要上传的文件路径 /服务器文件存放目录" "exit" /log=
:/log=输出log所在的位置
:如果上面用到了txt配置参数 如我这里 则新建sftp.txt 内容如下
open sftp://oracle:Pdh2_ab@133.64.94.99 hostkey=*
get /home/oracle/sun_check_*log* D:\Win7系统文件夹\Desktop\工作\日常检查\日志归档\
rm /home/oracle/sun_check_*log*
参照FTP的txt相信能看懂 如果有多台机器 重复你需要的内容即可
sftp第一次连接服务器的时候会提示你输入y确认key信息,否则连接失败。脚本是为了自动化服务,没时间输入y,所以加上 hostkey=*参数