自动ftp的批处理文件

分类:

@echo off
rem 关闭屏幕回显

if not exist d:\dmpftp.log echo DMPFTP LOG FILE>d:\dmpftp.log
rem 如果是首次运行程序,创建log文件d:\dmpftp.log

echo -----%date%-----%time%----->>d:\dmpftp.log
rem 在log文件中记录程序运行时的日期和时间

if exist d:\*.dmp ren d:\*.dmp *.old
rem 将以前的备份文件改名为old(以后若ftp成功则删除,若ftp失败就保留)

echo open 193.152.5.129>d:\dmpftp.txt
rem 建立ftp命令文件d:\dmpftp.txt,其中第一条命令就是连接omcr服务器,ip需根据现场情况设置

echo user xyz xyz>>d:\dmpftp.txt
rem 在命令文件d:\dmpftp中加入第二条命令,设置ftp时所需用户名和口令,根据情况设置

echo prompt>>d:\dmpftp.txt
rem 在命令文件d:\dmpftp中加入第三条命令,关闭ftp回显

echo cd /export/home/bak/db/backup>>d:\dmpftp.txt
rem 在命令文件d:\dmpftp中加入第四条命令,切换远程目录,根据情况设置

echo lcd d:/>>d:\dmpftp.txt
rem 在命令文件d:\dmpftp中加入第五条命令,切换本地目录

for /F "tokens=2-4 delims=/ " %%i in ("%date%") do echo get _%%k%%i%%j.dmp>>d:\dmpftp.txt
rem 从windows变量%date%中提取当天所要get的dmp备份文件名
rem 如果dos窗口下运行echo %date%,回显的是英文格式日期Fri 08/18/2006,就用上述命令生成第六条ftp命令
rem 如果%date%是中文格式2006-08-18 星期五,需改为
rem for /F "tokens=1-3 delims=- " %%i in ("%date%") do echo get _%%i%%j%%k.dmp>>d:\dmpftp.txt
rem 如是是oracle数据库用dmp,如果是db2数据库要将dmp改为tar

echo bye>>dmpftp.txt
rem 在命令文件d:\dmpftp中加入第七条命令,结束ftp

type d:\dmpftp.txt | ftp -n>>d:\dmpftp.log
rem 以dmpftp.txt文件内容做为ftp命令的输入,ftp执行的回显记录到log文件中

del d:\dmpftp.txt
rem 删除ftp命令文件,因为下次ftp时的dmp文件名有变化,需重新生成ftp命令文件

if exist d:\*.dmp del d:\*.old
rem 如果ftp成功,删除前一天的dmp文件

if not exist d:\*.dmp echo Ftp remote host FAIL, Save old file...>>d:\dmpftp.log
rem 如果因服务器或局域网原因ftp失败,记录到log文件中

dir d:\*.dmp d:\*.old>>d:\dmpftp.log
rem 列出当时客户端下的dump文件名,如果当天ftp成功则是当天的dmp文件,如果当天ftp失败,则是前一天的old文件,改扩展名后一样

exit

http://blog.chinaunix.net/uid-20139906-id-1733807.html
原文地址:https://www.cnblogs.com/y0umer/p/3839135.html