(File fileHandle,String file,long backupfileid)
| 144 | } |
| 145 | } |
| 146 | boolean exeCopy(File fileHandle,String file,long backupfileid) throws IOException { |
| 147 | Backuptargetroot backuptargetroot=getAvalidTarget(fileHandle.length()); |
| 148 | if(backuptargetroot==null) |
| 149 | { |
| 150 | logger.error("no space in all targetbackups! need:"+fileHandle.length()); |
| 151 | return false; |
| 152 | } |
| 153 | String md5str=DigestUtils.md5Hex(new FileInputStream(file)); |
| 154 | String targetName=backuptargetroot.getTagetrootpath()+File.separator+backuptargetroot.getTargetrootdir()+File.separator+md5str+"_"+System.currentTimeMillis(); |
| 155 | String targetNameSave=File.separator+backuptargetroot.getTargetrootdir()+File.separator+md5str+"_"+System.currentTimeMillis(); |
| 156 | LocalDateTime begincopysingle=LocalDateTime.now(); |
| 157 | try { |
| 158 | copyFileUsingFileChannels(fileHandle, new File(targetName)); |
| 159 | } |
| 160 | catch (Exception e) |
| 161 | { |
| 162 | logger.error("failed to copy file from "+file+" to "+targetName); |
| 163 | return false; |
| 164 | } |
| 165 | DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| 166 | mysqlHelper.exeSql("insert into tb_backfilehistory (backupfileid,backupid,motifytime,filesize,copystarttime,copyendtime,backuptargetpath,backuptargetrootid,md5) values (" + |
| 167 | backupfileid+","+backupid+","+fileHandle.lastModified()+","+fileHandle.length()+",'"+dateTimeFormatter.format(begincopysingle)+"','"+dateTimeFormatter.format(LocalDateTime.now())+"','"+targetNameSave+"',"+backuptargetroot.getId()+",'"+md5str+"')"); |
| 168 | logger.info("copy file from "+file+" to "+targetName); |
| 169 | return true; |
| 170 | } |
| 171 | |
| 172 | |
| 173 | private void XCopy(Backuproot backuproot) throws SQLException, IOException { |
no test coverage detected