티스토리 뷰

// * 폴더 내 모든 sql 가져와서.. (정렬 안됨)


String sPath = "I:\\180405_Winuser백업\\180404_IrsPDB_sqlDump";

String sBat = "restoreAll.bat";

String sDbName = "130514cidogir";


// 1. SQL 파일 목록 가져오기

File fDir = new File(sPath);

File[] afSql= fDir.listFiles(new FilenameFilter() {

// sql 파일만 가져옴

@Override

public boolean accept(File dir, String name) {

return name.matches(".*\\.sql");

}

});

// 2. 모두 실행하는 BAT 생성

File fBat = new File(fDir, sBat);

FileOutputStream fos = new FileOutputStream(fBat);

for(File f : afSql) {

String sCmd  = "mysql -f -uroot -p1111 "+sDbName+"<"+f.getAbsolutePath() +"\r\n";

IOUtils.write(("@echo "+f.getAbsolutePath() + ">CON\r\n").getBytes("MS949"), fos);

IOUtils.write(sCmd.getBytes("MS949"), fos);


// 시간표시 echo %date% %time%

}

fos.close();

// 실행할땐 

// restoreAll.bat > log.txt 2>&1 

// 이래야 배치파일 실행 로그 파일 생성 

//

// 2>&1 없으면 실행명령만 기록되고 결과가 기록 안 됨.

// 참고 : https://superuser.com/questions/698496/log-an-entire-batch-file-output?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

// http://www.robvanderwoude.com/battech_redirection.php




* 이름 순으로 지정하여 생성

String sPath = "G:\\180404_IrsPDB_sqlDump\\cio\\";

String sBatPath = "/home/udell/";

String sBat = "restoreAll_6.bat";

String sDbName = "130514cidogir";


File fDir = new File(sBatPath); 

// 2. 모두 실행하는 BAT 생성

File fBat = new File(sBatPath, sBat);

FileOutputStream fos = new FileOutputStream(fBat);

for(int i=0;i<=31729;i++) {

int iTarget = i*1000 + 1;

String sFile = sPath + "back_concrete_info_overview"+iTarget + ".sqlNoDdl";

String sCmd=""

+ "@echo "+sFile+ "/%date% %time% >CON \r\n"

+ "mysql -f -uroot -p1111 "+sDbName+"<\""+sFile +"\"\r\n"

+ "@echo %date% %time% \r\n";

IOUtils.write(sCmd.getBytes("MS949"), fos);

System.out.print(sCmd);

}



fos.close();


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함