日期:2014-05-17 浏览次数:20890 次
try { System.out.println("runtime"); String cmd = "cmd.exe /c start " + "D:\\SLDDataCenter\\Postgresql\\backup.bat" ; Process p = Runtime.getRuntime().exec(cmd); BufferedReader br = new BufferedReader( new InputStreamReader(p.getInputStream())); System.out.println("waiting for password..."); while((br.readLine())!=null){ System.out.println("br: "+br.readLine()); } while (true){ if(p.waitFor() == 0)break; } p.destroy(); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); }
//==========================数据库备份代码 开始===========================// BufferedWriter mBufWriter = null; //建立一个BackupDb.bat文件 FileWriter fileWriter = new FileWriter("BackupDb.bat"); mBufWriter = new BufferedWriter(fileWriter); //转到PostgreSQL安装的根目录 String batLine1=getText("database.postgresPath1"); //转到PostgreSQL下pg_dump.exe文件的路径 String batLine2="cd " + getText("database.postgresPath2"); String batLine4="CLS"; //设置数据库密码,为了跳过后面输入密码的过程 String batLine3="set PGPASSWORD=" + getText("database.postgresdbPwd"); /* ********************************************************* * pg_dump:命令执行备份 * -c:输出在创建数据库创建命令之前先清理(删除)该数据库对象的命令。 * -d:将数据输出为的INSERT命令(而不是 COPY)。(PostgreSQL8.4上无效,暂时不添加) * -h:主机名 * **********************************************************/ String batLine501="pg_dump -c -h " + getText("database.postgresdbHost"); //-U 数据库用户名 String batLine502=" -U " + getText("database.postgresusername"); //-p数据库端口 String batLine503=" -p " + getText("database.postgresdbPort"); //-E导出文件字符编码 String batLine504=" -E " + getText("database.bakupcode"); //要备份的数据库名称 String batLine505=" -D " + getText("database.postgresdbName") +" > "; batLine505=" " + getText("database.postgresdbName") +" > "; //取系统时间 Date NowTimes = new Date(); //将时间格式化成yyMMddhhmmss(年月日时分秒) SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmssms"); String BackupDbName = StringUtils.getPath(getText("database.bakupPath"))+ sdf.format(NowTimes) + ".backup"; BackupDbName = getText("database.bakupPath")+ sdf.format(NowTimes) + ".backup"; mBufWriter.write(batLine1); mBufWriter.newLine(); mBufWriter.write(batLine2); mBufWriter.newLine(); mBufWriter.write(batLine3); mBufWriter.newLine(); mBufWriter.write(batLine4); mBufWriter.newLine(); mBufWriter.write(batLine501); mBufWriter.write(batLine502); mBufWriter.write(batLine503); mBufWriter.write(batLine504); mBufWriter.write(batLine505); mBufWriter.write(BackupDbName); mBufWriter.newLine(); mBufWriter.flush(); mBufWriter.close(); try { // 执行BackupDb.bat文件进行备份数据库 Runtime.getRuntime().exec("Bac