0%

数据库与文件备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
rem auther:zhanghui
rem date:20181122
rem ******MySQL backup start********
@echo off
rem forfiles /p "G:\bupt_backup" /m backup_*.sql -d -30 /c "cmd /c del /f @path"
rem forfiles 用来对备份目录下的过期备份进行删除。
rem “E:\mysql\MySQL BackUp”是备份文件所在的路径,可以自行修改。
rem “backup_*.sql”指的是该路径下所有以“backup_”开头,以“.sql”作为后缀的数据库备份文件。
rem 而后面的数字“30”表示30天过期。

robocopy G:\APUE G:\backup-test /E /R:5 /W:60 /LOG+:G:\backup-test\copyLog.txt
rem 路径前者为需要备份的文件路径,后者为备份路径。
rem /E 表示复制子目录,包括空的子目录(不设置这个就只复制当前文件夹文件不复制子文件夹)
rem /MAXAGE:2 表示最长的文件存在时间,排除早于2天的文件(没有这个就是全部复制)
rem /W:n :: 两次重试间的等待时间: 默认为 30 秒。
rem /R:5 表示失败副本的重试次数(建议要设,默认值为一百万 = =)
rem /LOG+:D\xxx.txt 将状态输出到日志文件(附加到现有日志中)
rem 更多用法可在cmd中输入:help robocopy查看

set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
rem 使用set命令来定义一个名为“Ymd”的变量,这个变量的值就是后面的一大串规则,简单说就是当前的日期和时间
E:\Software_work\xampp\mysql\bin\mysqldump --opt --single-transaction=TRUE --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "bupt" > "G:\bupt_backup\backup_%Ymd%.sql"
rem @echo on
rem ******MySQL backup end********