新闻发布
管理系统无人值守是所有网站运维人员必须要操作的手段,有了无人值守运维人员可以高效的管理更多的网站服务器,可以吧大量时间发在性能和安全上的管理,上一期《网站运维数据备份方法介绍》中提到数据的两种类别,今天小编给大家分享网站备份脚本编写实现无人值守。
Windows下Mysql定期备份和定期清理 BAT脚本
Mysql的备份一定要导出SQL文件因为这样能够保证数据的正确性和完整性,如果直接使用winrar压缩后果不开设想;脚本使用 mysqldump 命令来备份一个指定的 Mysql 数据库到一个文件,文件格式为 %dbname%-yyyyMMddHHmmss.sql,只保留近60天的备份。如果想定时执行,在 Windows 中添加任务计划即可。
首先是数据库备份脚本backup.bat
@echo off C:\mysqldump.exe --user=root --password=4234432 gzblapp>D:\db_bak\superstardbbak\sqldata\%date%_gzblapp.sql C:\mysqldump.exe --user=windows1 --password=34534553 resourcesharing>D:\db_bak\rsdbbak\sqldata\%date%_resourcesharing.sql @echo on
说明:写脚本的时候一定要测试mysqldump命令能不能直接使用,不能使用的要配置path系统环境,不然命令脚本不能使用。
多数据库清理的脚本clear.bat
@echo off set sqldir1="D:\db_bak\rsdbbak\sqldata" set sqldir2="D:\db_bak\superstardbbak\sqldata" set orgin_mon=%date:~5,2% set orgin_year=%date:~0,4% set d=%date:~8,2% set mon=%orgin_mon% set y=%orgin_year%
若是下一年的1、2月,则先加12,再在后面减去一个月和两个月的时间
if %orgin_mon% lss 2 (set /a mon=%orgin_mon%+12 & set/a y=%orgin_year%-1) set monsago=1 set twomonsago=2
分别计算前一个月和两个月前的日期,/a就是把字符串看作数字运算
set /a m=%mon%-%monsago% set m2=%m% if %m% lss 10 (set m2=0%m%)
若月份是个位数,则在前面加0输出,因为做日期做运算的时候算出的结果是个位的时候是不会在前面带0的,
而日期后面匹配日期来删除文件的时候数据库文件中的日期字符串个位数是带0的,如2017-08-09,当8减去2的时候是等于6,所以必须凑0变成06
set /a m1=%mon%-%twomonsago% set m3=%m1% set monsagofile1=%y%-%m2%-%d%_resourcesharing.sql set twomonsagofile1=%y%-%m3%-%d%_resourcesharing.sql set monsagofile2=%y%-%m2%-%d%_gzblapp.sql set twomonsagofile2=%y%-%m3%-%d%_gzblapp.sql echo %twomonsagofile2%
删除名为sqldir1路径上面备份数据库上上个月之前的所有备份文件
for /f "delims=" %%i in ('dir/b/a-d %sqldir1% 2^>nul') do ( if %%i geq %twomonsagofile1% (if %%i lss %monsagofile1% (del %sqldir1%\%%i /f /q)) )
删除名为sqldir2路径上面备份数据库上上个月所有备份文件
for /f "delims=" %%j in ('dir/b/a-d %sqldir2% 2^>nul') do ( if %%j geq %twomonsagofile2% (if %%j lss %monsagofile2% (del %sqldir2%\%%j /f /q)) )
Windows下网站文件使用WinRAR定期备份和定期清理 BAT脚本
start c:\"Program Files"\winrar\rar a -k -r -s -m1 -agYYYYMMDD-{bak}-NN F:\BAK\ D:\WEB\
说明:备份 D:\WEB这个文件夹 到 F:\bak文件夹
start c:\"Program Files"\winrar\rar a -k -r -s -m1 F:\BAK\每日备份.rar D:\WEB\
说明:备份文件需要覆盖上次生成的文件
set deltime=date:~0,10% forfiles.exe /p E:\ /s /m *.rar /d -7 /c "cmd /c del /s @path >>D:\log\deltime%.txt"
说明:set deltime=date:~0,10%这句是取一个当前时间的变量,forfiles.exe是系统文件,查找文件的
/P是定义查找的路径
E:\是定义查找路径E盘下面
/S是定义查找范围包括子目录
/M *.rar 定义查找*.rar的文件
/D 是当前时间
-7 早于或者等于当前时间减7天,也就是7天前
/C 是调用命令行CMD.EXE的命令
"cmd /c del /s @path >>D:\log\deltime%.txt" 这个是删除查找到的文件,并且把删除文件的文件名导出到
D:\log\deltime%.txt这个txt文档
deltime%是系统变量,如果当前时间是20140416,那么生成的文件就是D:\log\20140416.txt,其实导出这个列表只是为了方便查看删除了那些东西
备注:当然了首先需要安装WINRAR压缩软件,把两个批处理保存为bak.bat 和del.bat,前面是备份的,后面是删除旧的备份文件。然后利用任务计划设置运行的时间。