SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
Date now = new Date();
String fileName = sessionId + sdf.format(now) + ".sql"; //设置备份文件的名称
log.debug("fileName: " + fileName);
//Util是我自己写的一个类,用来读取配置文件configure.properties
批处理文件地址:
http://dl2.youkuaiyun.com/down4/20070911/11164635732.bat
String backupFilePath = Util.getProperty("backupFilePath"); //从配置文件中读取备份文件将要保存在哪个目录
String mysqlUserName = Util.getProperty("mysql_username"); //数据库帐户
String mysqlPassword = Util.getProperty("mysql_password"); //数据库密码
String host = Util.getProperty("mysql_host"); //数据库IP地址
String dateHandleDir = Util.getProperty("dateHandleDir"); //批处理文件路径
String backUpDir = dateHandleDir+"backup.bat";
Runtime cmd = Runtime.getRuntime();
boolean haveError = false;
File f = new File(backupFilePath);
if(!f.exists()){
f.mkdirs(); //如果目录不存在就创建一个
}
String commandstr = "/""+backUpDir +"/""+ " " + mysqlUserName + " " + mysqlPassword + " "
+ host + " " + backupFilePath+fileName;
log.info("commandstr!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + commandstr);
Process p = cmd.exec(commandstr); //执行备份批处理文件
BufferedReader br = new BufferedReader(new InputStreamReader(p.getErrorStream())); //错误备份的输出流
String line="";
while ((line = br.readLine()) != null) {
//发生错误
log.info("<<<<<<<" + line);
haveError = true;
}
if (haveError) {
//备份数据库时发生错误
throw new CnidsException(Constants.FAIL_BACKUP_SQL);
}