使用场景基于SpringBoot
简单的记录下,比较粗糙
工具类
public static int backupMysql(String host,String root,String pwd,String dbName,String backup) throws IOException, InterruptedException {
String[] cmd = new String[3];
cmd[0] = "/bin/sh";
cmd[1] = "-c";
StringBuffer sb = new StringBuffer();
sb.append("-h").append(host).
append(" -u").append(root)
.append(" -p").append(pwd)
.append(" ")
.append(dbName)
.append(" > ")
.append(backup);
System.out.println("sb.toString() = " + sb.toString());
cmd[2] = sb.toString();
Process proc = Runtime.getRuntime().exec(cmd);
int i = proc.waitFor();
System.out.println("i = " + i);
return i;
}
//判断系统是否是Linux(这个没有使用到)
public static boolean isLinuxSystem(){
if(System.getProperty("os.name").toLowerCase().contains("linux")){
System.out.println("true = " + true);
return true;
}
System.out.println(" = " + false);
return false;
}
测试
public static void main(String[] args) throws IOException, InterruptedException {
int i = backupMysql("192.168.50.128", "root", "admin123", "lyrsjf", "/home/" + System.currentTimeMillis() + ".sql");
System.out.println("issss = " + i);
/*String[] cmd = { "/bin/sh", "-c", "mysqldump -192.168.50.128 -uroot -padmin123 lyrsjf > /home/lyrsjf000001.sql" };
Process proc = Runtime.getRuntime().exec(cmd);*/
/*//这个是windows备份数据库,写的时间太长了,有点忘了
String host = "192.168.50.128";
// 数据库用户名
String username = "root";
// 数据库密码
String password = "admin123";
// 数据库名称
String dbName = "lyrsjf";
// 备份路径
String filePath = "D:/lyrsjf.sql";
String[] sb = new String[3];
sb[0] = "/bin/sh";
sb[1] = "-c";
sb[2] = "mysqldump -h192.168.50.128 -uroot -padmin123 lyrsjf -r D:/lyrsjf.sql";
// 执行mysqldump命令
// String command = String.format(" mysqldump -h%s -u%s -p%s %s -r %s",host, username, password, dbName, filePath);
try {
System.out.println("command = " + sb);
Process process = Runtime.getRuntime().exec(sb);
process.waitFor();
System.out.println("MySQL数据库备份成功!");
} catch (Exception e) {
e.printStackTrace();
}*/
}