@echo off
rem 定义要备份目录
set AppMainPath=E:\APP
rem 定义备份到的目录
set Bakpath=E:\APP_backup
rem 获取当天时间,赋予name变量(中文系统)
set name=%date:~,4%%date:~5,2%%date:~8,2%
rem 从要备份的目录备份到备份目录,uncopy.txt为过滤列表,此文件一定要有
xcopy /y /H /E /exclude:uncopy.txt %AppMainPath% %Bakpath%\tomcat_%name%\
rem 定义7zip的路径,方便后面调用
set SevenZ="C:\Program Files\7-Zip\7z.exe"
rem 进入到备份目录
E:
cd %Bakpath%
rem 压缩目录,压缩完成后删除备份目录下的备份原文件
%SevenZ% a -t7z -sdel tomcat_%name% tomcat_%name%
rem 定义备份的时间,准备输入到检查文档中
set newdate=%date:~,4%.%date:~5,2%.%date:~8,2%
set newtime=%time:~0,2%.%time:~3,2%.%time:~6,2%
rem 将192.168.15.*段的ip地址赋值给ip变量
for /f "tokens=2 delims=:(" %%i in ('ipconfig /all^|find /i "192.168.15" ') do set ip=%%i
rem 删除旧的备份文件
del %ip%
rem 创建新的备份记录文件吗,将时间,ip地址,路径输入到备份记录文件
echo backdate: %newdate% %newtime% > %ip%
echo ip address:%ip%>> %ip%
rem 取完整的备份路径,输入到备份记录文件,然后删除
dir /S/B /A:A > dirfile.txt
findstr %name% dirfile.txt >> %ip%
del dirfile.txt
rem 因为批处理没有sellp等待,所以用这样的方式等待4秒
ping 127.0.0.1 -w 1
rem 定义一个变量,用这个文件来存放ftp信息
set ftpfilename=autoftp.txt
echo backup_user>%ftpfilename%
echo 123#abc>>%ftpfilename%
echo cd> echo bin >>%ftpfilename%
echo lcd %Bakpath% >>%ftpfilename%
echo put %ip% >>%ftpfilename%
echo bye >>%ftpfilename%
ftp -s:%ftpfilename% 192.168.15.202
del "%ftpfilename%"
rem 定时清理,删除21天前的文件
forfiles /p "%Bakpath%" /d -21 /c "cmd /c echo deleting @file ... && del /f @path"