服务器上的网站和mysql数据库需要每天备份,用windows自带的命令实现,每天自动备份,为了不占用硬盘的使用,自动删除30天前的备份。
需要备份的网站目录为:F:WebDate
,备份后保存的目录为:F:WebDate-Back,日志目录为:F:back-log。
创建一个名为:backup.bat的文件,内容如下:
IF EXIST F:back-log/log-�te:~0,10%.txt del /F /S
/Q F:back-log/log-�te:~0,10%.txt
#如果日志文件存在则删除。�te:~0,10%取日期的前10位,我的系统日期格式"date/t"是“2010-05-27
星期四”,所以取得“2010-05-27”。根据情况需调整。
IF EXIST
F:WebDate-Back�te:~0,10% RD
/S /Q F:WebDate-Back�te:~0,10%
#如果文件夹存在,删除。
MD F:WebDate-Back�te:~0,10%
#建立文件夹。
xcopy F:WebDate F:WebDate-Back�te:~0,10% /C /E
/H /K /F /R /Y
>>
F:back-log/log-�te:~0,10%.txt & time/T >>
F:back-log/log-�te:~0,10%.txt
#复制F:WebDate
文件夹到F:WebDate-Back�te:~0,10%,并同时把已复制的文件输出到日志文件,xcopy连目录一起复制。
IF EXIST F:WebDate-Back�te:~0,10% IF EXIST
F:WebDate-Back�lDate% RD /S
/Q F:WebDate-Back�lDate%
#如果已复制完成,则删除前30天(�lDate%指明,由下面vb取得)的备份。
创建一个名为:backup.vbs 的文件,内容如下:
dtmYesterday = DateAdd("d",-30,Date)
'这里的30就是天数
strYear = DatePart("yyyy",dtmYesterday)
If DatePart("m",dtmYesterday) < 10 Then
strMonth = 0 & DatePart("m",dtmYesterday)
Else
strMonth = DatePart("m",dtmYesterday)
End If
If DatePart("d",dtmYesterday) < 10 Then
strDay = 0 & DatePart("d",dtmYesterday)
Else
strDay = DatePart("d",dtmYesterday)
End If
delDate = strYear &"-"& strMonth
&"-" &strDay
Set WshShell =
CreateObject("WScript.Shell")
WshShell.Run("CMD /C set delDate=" & delDate & "
&
backup.bat")
'backup.bat和backup.vbs必须在同一个目录
Set WshShell = Nothing
Mysql的备份我采用的是同样的道理,优点是不会改变之前数据的结构和位置,缺点是数据量很大,如果mysql版本不一样的话,直接拷贝还原可能有问题。
命令写完后添加backup.vbs 到windows的任务计划里面,设置每天定时几点钟执行就可以了,因为远程服务器我们可能经常会修改密码,很多时候导致任务计划没有被执行,为了保险起见,建议单独创建一个用户,用户组为:Backup
Operators,任务计划的执行用户为新建的用户,这样的话修改了我们的远程用户密码也不影响了。