📄 oracleback.java
字号:
package com.oracle;
import java.util.*;
import java.text.SimpleDateFormat;
public class OracleBack{
private int EXEC_HOUR=1;
private int EXEC_MIN=25;
public String databaseName;
public String userName;
public String password;
public String backPath;
public String ownerUsers;
public String winRarPath;
public int backCount=0;
public void start(){
ReadFile rf=new ReadFile(this.EXEC_HOUR,this.EXEC_MIN);
this.EXEC_HOUR=rf.hour;
this.EXEC_MIN=rf.min;
this.databaseName=rf.databaseName;
this.userName=rf.userName;
this.password=rf.password;
this.backPath=rf.backPath;
this.ownerUsers=rf.ownerUsers;
this.winRarPath=rf.winRarPath;
rf=null;
System.out.println("XXXXXXXXXXXX执行备份时间:,每天"+EXEC_HOUR+":"+EXEC_MIN+" XXXXXXXXXXXX");
while(true){
sleep();
Tools tool=new Tools();
String strDate=(new SimpleDateFormat("yyyyMMdd")).format(new Date()).toString();
tool.printBat(this,strDate);
tool.runBat(strDate);
tool=null;
strDate=null;
this.backCount++;
}
}
public void sleep(){
Date nowDate=new Date();
int nowHour=nowDate.getHours();
int nowMin=nowDate.getMinutes();
try {
if(this.backCount>0){
System.out.println("休眠开始时间:"+nowHour+":"+nowMin+" 休眠 24时 0分");
Thread.currentThread().sleep(86400000);
System.out.println("休眠结束");
return;
}else{
int targetM=this.EXEC_HOUR*60+this.EXEC_MIN;
int nowM=nowHour*60+nowMin;
int min=((targetM-nowM)+1440)%1440;
System.out.println("休眠开始时间:"+nowHour+":"+nowMin+" 休眠"+(min/60)+"时"+(min%60)+"分");
Thread.currentThread().sleep(min*60000);
System.out.println("休眠结束");
return;
}
}catch(InterruptedException e){
System.out.println("Thread error");
}
}
public static void main(String[] args){
new OracleBack().start();
}
}
/**
SimpleDateFormat函数用法
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -