/**
* @author 作者 :dengxiangyu
* @version 創建時間:2019年4月8日 下午4:35:06
*
*/
@Component
public class SdnBackup {
private static final Logger logger = LoggerFactory.getLogger(SdnBackup.class);
@Autowired
private SdnBackupMapper sdnBackupMapper;
@Value("${hz.kakashi.sdn.table}")
String tables;
//每晚六點備份
@Scheduled(cron = "0 0 18 * * ? ")
public void timing() {
logger.info("sdn開始備份");
backup();
logger.info("sdn備份完成");
clean();
logger.info("sdn30天前備份表刪除完成");
}
/**
* 備份
*/
public void backup() {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(new Date());
List<String> list = Arrays.asList(tables.split(","));
for (String table : list) {
sdnBackupMapper.backup(table, table + "_" + date);
}
}
/**
* 刪除一個月前備份
*/
public void clean() {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.DATE, -30);
Date d = c.getTime();
String day = df.format(d);
List<String> list = Arrays.asList(tables.split(","));
for (String table : list) {
try {
sdnBackupMapper.delete(table + "_" + day);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}