在Linux下可以通过crontab来设置定时执行数据库的备份脚本,同样Windows下可以通过设定任务计划程序来设定要执行的自动备份脚本。具体的设定过程不再详述,下面分别为Oracle和MySQL的备份脚本:
set filename=%e:\backup_bat\local%date:~0,10%
exp giftsdev/giftsdev@local file=%filename%.dmp log=%filename%.log owner=giftsdev compress=y grants=y indexes=y constraints=y
jar cvf %filename%.jar %filename%.*
copy %filename%.jar e:\exp_data\local%date:~0,10%.jar
set dirname=bak%date:~0,4%%date:~5,2%
set filename=tdoa-%nowdate%.rar
mysqldump -uroot -pmyoa888 td_oa > td_oa.sql
::E:\MYOA\mysql\bin\mysqldump.exe -uroot -pmyoa888 td_oa > td_oa.sql
rar a %filename% td_oa.sql
::%windir%\System32\WinRAR.exe a %filename% td_oa.sql
move %filename% F:\OA_BACKUP\%dirname%
(1) 创建文件夹失败。在windows 2008 下,默认的日期格式为类似 2010/12/27 的样式,在根据日期创建文件夹或者文件时由于windows 不允许有“/ ”特殊字符的存在,故报创建错误。这里使用“set nowdate=%date:~0,4%%date:~5,2%%date:~8,2% ”分别取得年、月、日拼凑的形式变相实现。
(2) 环境变量问题。在写完上述脚本后,双击bat 文件可以无误顺利的执行,但是扔到计划任务执行时就总是报错,具体为rar 和mysqldump 命令不存在。我怀疑是环境变量的设置没有生效,由于在服务器上不能轻易的执行服务器的重启,这里用rar 和mysqldump 的完整路径来代替(代码中的红色字体)
if not exist F:\OA_BACKUP\%dirname% md F:\OA_BACKUP\%dirname%
4. 关于%DATE:~4,10% 的格式
这个命令的意思就是在DATE 的输出中,取4-10 中间的字符。
对于不同的机器,可能有不同的时间格式,这个可以在控制面板里设置。
可以通过ECHO 命令察看当前设置,如:
C:>echo %DATE%
星期一 2002-10-28
当然,我们可以同样取到星期的值:
C:>echo %DATE:~0,3%
星期一
当然也可以从不同方向来:
C:>echo %DATE:~-10%
2002-10-28
C:>echo %DATE:~0,-10%
星期一
1 〉将winRAR.exe 文件拷贝到system32 文件夹下;
rar a %filename%.rar %filename%.*
6. 用jar 打包解压文件必须在当前系统中装有jre 环境
jar cvf %filename%.jar %filwname%.*
本文转自 yubowei 51CTO博客,原文链接:http://blog.51cto.com/samyubw/465599