一、自动备份数据库及删除
rem auther:cao
@echo off
forfiles /p "F:\XAMPP\BACKUP" /m ecrm_*.sql -d -30 /c "cmd /c del /f @path"
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,1%%time:~1,1%%time:~3,2%"
"F:\XAMPP\mysql\bin\mysqldump" --opt --single-transaction=TRUE --user=root --password= --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "ecustomer" > "F:\XAMPP\BACKUP\ecrm_%Ymd%.sql"
@echo on
rem是注释标识
forfiles.exe是系统文件,查找文件的
/P是定义查找的路径
F:\XAMPP\BACKUP是定义查找路径F盘下面XAMPP下的BACKUP文件夹
/m ecrm_*.sql定义查找*.sql的文件
/D 是当前时间
-30 早于或者等于当前时间减30天,也就是30天前
/C 是调用命令行CMD.EXE的命令
"cmd /cdel /s @path " 这个是删除查找到的文件
"F:\XAMPP\mysql\bin\mysqldump"是mysql导出数据的可执行文件所在目录
--opt是启动命令
--single-transaction=TRUE是执行模式
--user=root --password= --host=127.0.0.1分别是链接数据库的用户名、密码、主机ip
--protocol=tcp --port=3306 是TCP传输协议及端口号
--events "ecustomer" > "F:\XAMPP\BACKUP\ecrm_%Ymd%.sql" events 参数即实现了将数据库备份到一个指定的文件这一操作。"ecustomer"是需要做备份的数据库,而大于号“>”右边的就是我们的备份文件所保存的服务器目录和文件名了。
二、压缩文件的自动备份
start c:\"Program Files"\WinRAR\rar a -k -r -s -m1 -agYYYYMMDD-{qiyecrm}-NN F:\test\ "F:\XAMPP\htdocs\qiye"
a是添加文件到压缩包,
-k是锁定压缩包,
-s是转换文件为解压缩文件,
-m1是压缩的标准,就是快速压缩,标准压缩,最好压缩......,
-ag是指定生成的文件名,按照我的设置生成的文件名为20140416-qiyecrm-02.rar,生成以日期命名的压缩文件,
F:\test\是生成压缩包存放路径,
"F:\XAMPP\htdocs\qiye"是压缩目标。详细的压缩参数可在命令行输入c:\"Program Files"\winrar\rar/?或者进入c:\"Program Files"\winrar\目录,里面有个使用帮助.chm的文件。
三、删除指定的备份压缩文件
set deltime=date:~0,10%
forfiles.exe /p F:\test\ /s /m *.rar/d -7 /c "cmd /c del /s @path >>F:\log\deltime%.txt"
setdeltime=date:~0,10%这句是取一个当前时间的变量,forfiles.exe是系统文件,查找文件的。
/P是定义查找的路径
E:\是定义查找路径E盘下面
/S是定义查找范围包括子目录
/M*.rar 定义查找*.rar的文件
/D 是当前时间
-7 早于或者等于当前时间减7天,也就是7天前
/C 是调用命令行CMD.EXE的命令
"cmd /cdel /s @path >>F:\log\deltime%.txt" 这个是删除查找到的文件,并且把删除文件的文件名导出到
F:\log\deltime%.txt这个txt文档
deltime%是系统变量,如果当前时间是20140416,那么生成的文件就是D:\log\20140416.txt,其实导出这个列表只是为了方便查看删除了那些东西
把两个批处理保存为bak.bat和del.bat,前面是备份的,后面是删除旧的备份文件。然后利用任务计划设置运行的时间,按照我的需要,我设置是
每日01:30运行bak.bat
每周日23:00运行del.bat