sql database periodically synchronize and upload ftp script

sql database periodically synchronize and upload ftp script

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
@echo off
 
set USER =root 
set PASSWORD =root 
set DATABASE =** 
 
rem 备份文件存储路径
set BACKUP_DIR=f:\DMP_BACKUP\dmp_backup
rem 备份文件目录  处理小时
set h=% time :~0,2%
set h=%h: =0%
set DUMPFILE=% date :~0,4%% date :~5,2%% date :~8,2%-%h%% time :~3,2%_dmp.sql
set OPTIONS=-u% USER % -p% PASSWORD % % DATABASE %
set DATE_TIME=% date :~0,4%-% date :~5,2%-% date :~8,2% % time :~0,2%:% time :~3,2%:% time :~6,2%
 
 
 
rem 判断备份文件存储目录是否存在,否则创建该目录 
if not exist %BACKUP_DIR%  (
      echo ------目录不存在 创建目录...
      mkdir %BACKUP_DIR%
      )
 
rem 记录日志
echo % date :~0,4%-% date :~5,2%-% date :~8,2% % time :~0,2%:% time :~3,2%:% time :~6,2%: Database Backup Begin ...   >> %BACKUP_DIR%\log.txt
 
rem 上一次备份文件的大小 用于预警
 
cd /d f:\DMP_BACKUP\dmp_backup\
for /f "tokens=*" %%f in ( 'dir *.sql /b /od /a-d' ) do ( set f=%%f& set old_size=%%~zf)
 
 
echo ------上次备份文件:%f% ( %old_size% 字节)
echo ------备份开始...
 
 
rem 使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件
rem 名字可能存在空格,所以加引号
mysqldump %OPTIONS% > %BACKUP_DIR%\%DUMPFILE%
 
rem 判断数据库备份是否成功?  失败%errorlevel%返回6
if %errorlevel% gtr 0 (              
                 echo % date :~0,4%-% date :~5,2%-% date :~8,2% % time :~0,2%:% time :~3,2%:% time :~6,2%: Database Backup Fail... ...  >> %BACKUP_DIR%\log.txt
         echo ------备份失败...
         ) else (echo % date :~0,4%-% date :~5,2%-% date :~8,2% % time :~0,2%:% time :~3,2%:% time :~6,2%: Database Backup success      Backup Address: %BACKUP_DIR%\%DUMPFILE% 
 
>> %BACKUP_DIR%\log.txt
         echo ------备份成功...
         )
 
rem 判断备份数据的大小,理论上备份数据会越来越大
FOR /f "delims=" %%i in ( "%BACKUP_DIR%/%DUMPFILE%" ) do (       
     set /a size_M=%%~zi/1048576  
     set /a size_b=%%~zi
)    
 
 
set /a change_size=%size_b%-%old_size%
echo ------此次备份文件:%DUMPFILE% ( %size_b% 字节) 增加了%change_size% 字节
 
echo % date :~0,4%-% date :~5,2%-% date :~8,2% % time :~0,2%:% time :~3,2%:% time :~6,2%: Database Backup Size         %size_M% MB (%size_b% Byte) change %change_size% Byte    >>
 
%BACKUP_DIR%\log.txt
 
echo.>> %BACKUP_DIR%\log.txt
 
rem 删除30天前的备份数据
rem 指定天数
set DaysAgo=30
 
forfiles /p f:\DMP_BACKUP\dmp_backup\ /s /m *.* /d -%DaysAgo% /c "cmd /c del @file"
if %errorlevel% gtr 0 (
echo ------没有删除本地备份
)
 
echo ------开始上传ftp
 
echo open ftp.******.com>abc.txt
echo user username password >>abc.txt
echo cd dmp_backup
echo cd dmp_backup  
echo prompt off
echo mdelete log.txt
echo put "f:\DMP_BACKUP\dmp_backup\log.txt"  "dmp_backup\dmp_backup\log.txt" >> abc.txt
echo put "%BACKUP_DIR%\%DUMPFILE%"  "dmp_backup\dmp_backup\%DUMPFILE%" >> abc.txt
echo bye>>abc.txt
ftp -n -s:abc.txt
if %errorlevel% EQU 0 (
echo ------上传ftp成功
)
del abc.txt
 
pause

这个脚本很多功能略显鸡肋,有时间在修改一下。大家有什么问题可以留言。

Guess you like

Origin www.cnblogs.com/SyncNavigator8-4-1/p/10974404.html