将本地数据库备份到本地或者远程机器上
一.备份到本地脚本
1.新建一个脚本叫backup_local.bat
set NOW_TIME=%date:~0,4%%date:~5,2%%date:~8,2% cd C:/Program Files/MySQL/MySQL Server 5.6/bin mysqldump -u root -proot mz_rhhd> D:\db_backup\test_%NOW_TIME%.sql pause
2.新建任务计划
控制面板——》管理工具——》任务计划程序——》创建基本任务
3.效果
二.备份到远程
1.新建一个脚本叫backup_remote.bat文件。其他操作同上
@echo off Set RemoteIP=192.192.192.3 Set RemoteDir=FILEBAK\DATA Set sourceDir=D:\backup\DC_BS Set RemoteUser=srnet_bak Set RemotePass=srnet_bak Set FileDir=D:\backup\DC_BS Set SysDate=%date:~0,4%-%date:~5,2%-%date:~8,2% Set FileName=%RemoteUser%_%RemoteIP%_%SysDate% Set DelDay=4 @echo 开始备份MYSQL数据库... mysqldump -udc_bs_2019 -pdc_bs_2019 --single-transaction --force -R -E -q -h rm-bp11lkc17g103cw25.mysql.rds.aliyuncs.com --extended-insert --default-character-set=utf8mb4 dc_bs_2019>D:/backup/DC_BS/MYSQL_dc_bs_%SysDate%.sql @echo MYSQL数据库备份完成... @echo 开始压缩文件到指定位置... "C:\Program Files (x86)\WinRAR\Rar.exe" a %FileDir%/MYSQL_dc_etl_%SysDate%_bak.rar %sourceDir%/MYSQL_dc_etl_%SysDate%.sql @echo 文件压缩完成! @echo 开始清除超过规定时间%DelDay%天的备份文件 forfiles /p %FileDir% /s /m *.* /d -%DelDay% /c "cmd /c del /f /q /a @path" @echo 删除超过规定时间的备份文件完成
三.删除指定日期前的历史文件或者文件夹
rem 删除D:\temp目录下7天前的文件 Forfiles /p D:\temp /s /d -7 /m *.* /c "cmd /c del /q /f @path" rem 删除C:\ipub\logs目录下14天前的文件 Forfiles /p C:\ipub\logs /s /d -14 /m *.* /c "cmd /c del /q /f @path"
#删除指定路径下7天以前的文件夹
set "del_path=D:\Backup\"
forfiles /p %del_path% /d -7 /c "cmd /c rd /q /s @path\"
各参数的含义
rem: 注释命令,只是起一个注释的作用
/p:指定要删除的目录
/s:表示递归搜索子目录
/d:-14表示14天前的文件,-7表示7天前的文件
/m:. 表示所有文件类型,如果要删除特定文件格式,可自行指定(如:只删除txt文件,可写成 *.txt )
/c:自行指定的命令,后面双引号括起来的是删除文件命令
自行指定的命令 “cmd /c del /q /f @path” 中:
/c: 表示执行完批处理命令后,关闭CMD窗口
del: 删除文件的命令
/q:安静模式。
删除全局通配符时,不要求确认
/f:强制删除只读文件。
使用方式及会用到的地方
使用方式:可以在Windows任务计划程序中,创建定时任务来执行该批处理文件(如:每天什么时间执行、执行频率…)。
会用到的地方:用于删除占用资源且没有用的文件,可用于定时删除服务器上的很久以前的临时文件、IIS服务器log…
优点:只需简单几行命令,完成设定来实现目的是比较快的。