返回顶部

收藏

java 定时备份数据库

更多

/**

  操作数据库

*/

public class BackupDb { public String backup() throws IOException{ String user = "root"; //数据库的用户名 String password = "admin";//数据库的密码 String database = "hrtweb";//要备份的数据库名 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String filepath = "d:\"+sdf.format(date)+".sql"; File file = new File("d:\",sdf.format(date)+".sql"); if(!file.exists()){ file.createNewFile(); } String stmt1 = "mysqldump " + database +" -h 127.0.0.1 "+ " -u " + user + " -p" + password + " --default-character-set=gbk --result-file=" + filepath; try { Runtime.getRuntime().exec(stmt1); System.out.println("已经保存到 " + filepath + " 中"); } catch (IOException e) { e.printStackTrace(); } return filepath; } }

/**

 创建定时器

*/

public class PickTask { private Timer timer = new Timer(); private TimerTask task = new TimerTask() { public void run() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String beginDate = sdf.format(date); String beginTime = beginDate.substring(11, 16); System.out.println("开始时间:"+beginDate); BackupDb bdb = new BackupDb(); // 设定备份时间 if (beginTime.equals("17:09")) { try { bdb.backup(); // 执行文件备份 String dbName = bdb.backup().toString(); // 取出备份的文件名字 String path = "d:\"; int nameNo = dbName.lastIndexOf("\"); //判断文件是否存在,如果存在,则备份成功,如果不存在则备份不成功需要重新备份 File file = new File(path, dbName.substring(nameNo + 1,dbName.length())); if (file.exists()){ System.out.println("备份成功"); }else{ System.out.println("备份失败,重新备份"); //在备份未成功的情况下重新备份 new PickTask().start(1, 1); } } catch (FileNotFoundException e) { System.out.println("can not find the file"); } catch (IOException e) { e.printStackTrace(); } }else{ System.out.println("时间还不到呢,不要着急哦!"); } } }; //start 方法不能少,主要是schedule方法 public void start(int delay, int internal) { timer.schedule(task, delay * 1000, internal * 1000); }}

/**

 测试类,执行定时备份指令

*/

public class TimerUse { public static void main(String[] args) { PickTask picktask = new PickTask(); picktask.start(1, 60); // 每60秒执行一次 }}

标签:java

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. asuncool@gmail.com(y 发表 2018-09-18 04:43:41 JAVA性能监控与调优参考文档链接
  2. 加多 发表 2018-09-17 02:02:13 Java并发编程之美
  3. xiaoli.wang 发表 2018-09-17 14:50:09 一份牛逼的Java后端路线图,是可以帮你薪资翻倍的
  4. xubiao.zhuang 发表 2018-09-17 14:51:09 公司为什么需要建立一套统一的开发框架?
  5. xiaoli.wang 发表 2018-09-17 15:49:43 Mybatis架构与原理
  6. polandeme 发表 2018-09-16 13:47:41 Code
  7. 刘莉莉 发表 2018-09-16 11:13:17 Spring中的循环依赖
  8. songhua.gao 发表 2018-09-16 12:12:33 AndroidStudio 3.0 NDK开发1——环境搭建与编译
  9. 尖兵 发表 2018-09-16 12:13:33 AndroidStudio 3.0 NDK开发2-AAR模块封装
  10. 尖兵 发表 2018-09-16 12:13:33 AndroidStudio 3.0 NDK开发2-AAR模块封装
  11. yanxinchi 发表 2018-09-16 13:14:07 (201)Atomic*实现原理
  12. yanxinchi 发表 2018-09-16 13:14:07 (201)Atomic*实现原理

发表评论