dimOn писал(а):
в чём смысл автоматизировать потенциально опасное действие, которое делается максимум раз в месяц за три клика?
я бы даже сказал, в чем смысл если кому надо может сам написать со своими свистоперделками, а из коробки не будет потенциально опасной проблемы "Куда делись наши таблицы?"
Как пример самого простого выдранного из bitel.billing.server.dba.action.
Настраиваем один раз модуль DBA чтобы генератор знал какие таблицы туда засовывать, и ставим на выполнение раз в месяц
Отсылаем себе письма, ставим алармы и радуемся.
Код:
package ru.ellcom.bgbilling.scripts.dba;
import bitel.billing.server.dba.bean.BashScriptGenerator;
import bitel.billing.server.dba.bean.BatchScriptGenerator;
import bitel.billing.server.dba.bean.ScriptGenerator;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.Connection;
public class DeleteMonthTable extends GlobalScriptBase {
@Override
public void execute(Setup setup, ConnectionSet connectionSet) throws Exception {
Connection con = connectionSet.getConnection();
String type = "bash";
String mysqlCommand = "/usr/bin/mysql -ulogin -ppswd";
String mysqlDumpCommand = "/usr/bin/mysqldump -ulogin -ppswd";
String backupPath = "/opt/backup";
int mid = 10;
ScriptGenerator generator = null;
if (type.equals("bash")) {
generator = new BashScriptGenerator(setup, con, mid);
} else if (type.equals("batch")) {
generator = new BatchScriptGenerator(setup, con, mid);
}
generator.setMysqlCommand(mysqlCommand);
generator.setMysqlDumpCommand(mysqlDumpCommand);
generator.setBackupPath(backupPath);
String script = generator.getScript();
String lines[] = script.split("\\r?\\n");
for(String line : lines){
if(line.startsWith(mysqlCommand) || line.startsWith(mysqlDumpCommand)){
/*
* Запускаем mysqldump/mysql
* */
}
}
}
}