Heim >Datenbank >MySQL-Tutorial >Java?????????mysql??????23:00????????????

Java?????????mysql??????23:00????????????

WBOY
WBOYOriginal
2016-06-07 16:16:10738Durchsuche

Java?????????mysql??????23:00???????????? public class DatabaseBackup { /** * * @param dbdir mysql????????????????????? * @param dbname ?????????????????? * @param backdir ??????????????? */ public static void backup(String dbdir, String db

Java?????????mysql??????23:00????????????
public class DatabaseBackup {
    /**
     * 
     * @param dbdir mysql?????????????????????
     * @param dbname  ??????????????????
     * @param backdir ???????????????
     */
    public static void backup(String dbdir, String dbname, String backdir) {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd_HHmmss");
        String currentTime = dateFormat.format(calendar.getTime());
        try {
            long startTime = System.currentTimeMillis();
            Runtime rt = Runtime.getRuntime();
            Process child = rt
                    .exec(dbdir + "/bin/mysqldump --default-character-set=utf8 -uroot -p123456 " + dbname);
            InputStream in = child.getInputStream();
            InputStreamReader xx = new InputStreamReader(in, "utf8");

            FileOutputStream fout = new FileOutputStream(new File(backdir, dbname + "_" + currentTime + ".bak"));
            OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");

            dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

            writer.write("-- Dump by Microsoul at " + dateFormat.format(calendar.getTime()) + "\r\n");

            String inStr;
            BufferedReader br = new BufferedReader(xx);
            // ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Java????????????????????????
            while ((inStr = br.readLine()) != null) {
                writer.write(inStr);
                writer.write("\r\n");
            }

            writer.write("\r\n-- Use " + (System.currentTimeMillis() - startTime) + "ms\r\n");

            writer.flush();
            in.close();
            xx.close();
            br.close();
            writer.close();
            fout.close();
        } catch (Exception e) {
            PrintStream print = null;
            try {
                print = new PrintStream(new File(backdir, currentTime + "_backup_err.log"));
                dateFormat.applyPattern("yyyy-MM-dd HH:mm:ss");
                currentTime = dateFormat.format(calendar.getTime());
                print.println(currentTime + "  backup failed.");
                e.printStackTrace(print);
                print.flush();
            } catch (IOException e2) {

            } finally {
                if (print != null) {
                    print.close();
                }
            }
        }

    }
}

?????????????????????????????

public class Test {
    public static void main(String[] args) {
        Calendar twentyOne = Calendar.getInstance();
        twentyOne.set(Calendar.HOUR_OF_DAY, 23);
        twentyOne.set(Calendar.MINUTE, 0);
        twentyOne.set(Calendar.SECOND, 0);

        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                DatabaseBackup.backup("/usr/local/mysql", "test", "/home/xtiger/db/");
            }
        }, twentyOne.getTime(), 24 * 3600 * 1000);
    }
}

??????????????????????????????????? Timer???????????????

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:服务器mysql及c3p0设立Nächster Artikel:mysqldump使用惯用参数说明