Page tree
Skip to end of metadata
Go to start of metadata

我们可以使用计划任务实现定时备份产品知识库。目前产品知识库中默认自带自动备份知识库的任务和计划,一般情况下不需要手动添加。

实现步骤:

1、请下载下面xml文件。

      migrate自动备份知识库.xml

2、使用工具里面的导入功能,导入备份知识库的计划任务导入后会有如下自动备份知识库的任务和计划,如图:

      

附:自动备份知识库任务脚本

importPackage(Packages.java.lang);
importPackage(Packages.java.io);
importPackage(Packages.smartbi.repository);

function DateStr(){  
  var d = new Date(); 
  var s = "";  
  s += d.getFullYear() + "_";                          
  s += (d.getMonth() + 1) + "_";            
  s += d.getDate()  +  "_";  
  s += d.getHours()  +  "_";    
  s += d.getMinutes()  +  "_";  
  s += d.getSeconds() ;   
  return(s);   
}
var maxCount = 30; //最多的备份数
var floderName = "repoBackup"; //备份目录
var name = "backup_"+DateStr()+".zip";
var floder = new File(floderName);
    floder.mkdirs();
var backupFile = new File(floderName+"/"+name);            
var fos = new FileOutputStream(backupFile);
var br = new BackupResources();
var denyTables = "['t_operationlog','t_operationlog_detail','t_session','t_ssreport_writebacklog','t_offline_publishpack','t_fileresource']";
br.backup(fos,denyTables);
fos.flush();
fos.close();
var allBackup = floder.listFiles();
var allCount = allBackup.length;
if (allCount > maxCount) {
    for (var i=0;i<allBackup.length;i++) {
        for (var j=i+1;j<allBackup.length;j++) {
            if (allBackup[i].lastModified() < allBackup[j].lastModified()) {
                var temp = allBackup[i];
                allBackup[i] = allBackup[j];
                allBackup[j] = temp;
            }
        }
    }
    //删掉老的
    for (var i = maxCount;i<allBackup.length;i++) {
        allBackup[i].delete();
    } 
}

3、备份的知识库文件存储在服务器启动路径/reportbackup目录下

  • No labels