Java sem nutela no Ubuntu – Parte 3
Estarei neste tópico apresentando como integrar linux com JAVA, de forma que possamos utilizar recursos do sistema operacional de forma que possamos ganhar maior agilidade.
Porque usar o SO
É interessante criar rotinas integráveis para o sistema operacional para ganhar agilidade e performace.
Como utilizar?
Podemos chamar aplicações:
- shell script– Quando queremos agregar operações em lote, exemplo copiar uma pasta.
- aplicação terceira – Quando queremos aproveitar features especificas da linguagem, exemplo uso de python para IA.
Quando não utilizar o SO
Existem muitos motivos para usar, e outros motivos que rejeitam o uso.
O mais importante motivo que rejeita seu uso, é quando queremos criar aplicações que não dependem do SO, podendo ser desacoplada de qualquer plataforma.
Aplicações
Aplicações de infra, necessárias para criação de serviços ou recursos, associados a um dado SO.
Podemos utilizar um serviço por exemplo para criar ambientes automatizados, criando ambientes de forma rápida e automática, replicando o que um operador faria em processos manuais.
Exemplos:
- Clonagem de banco de dados
- Copiar arquivos
- Montagem de Serviços
- Gestão de recursos do SO
- Manipulação de containers ou serviços.
- Gestão de testes integrados, etc
Como chamar aplicações
public static int ProgExt(String Param01, String Param02) throws IOException {
int Resultado = 0;
System.out.println ("Chamando ProgExt... ");
Runtime rt = Runtime.getRuntime();
String[] commandAndArguments = {"/home/mmm/projetos/meuproj/scripts/ScripExt.sh", Param01, Param02 };
System.out.println(commandAndArguments);
try {
String s;
System.out.println ("ProgExt- Exec commandAndArguments completo");
Process p = rt.exec(commandAndArguments);
p.waitFor();
Resultado = p.exitValue();
System.out.println ("ProgExt- exit: " + Resultado);
p.destroy();
} catch(Exception ex) {
ex.printStackTrace();
}
return Resultado;
}
Ao Realizar a chamada o ScriptExt.sh, passamos os parâmetros, conforme o script abaixo:
#!/bin/bash
ORIGEM=$1
DESTINO=$2
PATH=/home/mmm/projetos/meuproj/scripts
echo "Inicio de Log" > $PATH/logbkp.log
echo "Iniciando copia de arquivo" >> $PATH/logbkp.log
/usr/bin/cp -r $ORIGEM $DESTINO >> $PATH/logbkp.log
O modelo deste script, permite capturar pela shell script os parâmetros recebidos do JAVA, realizando tarefas via scripts, permitindo aproveitar o que o JAVA teria maior dificuldade em realizar.
De fato a automação de cópia, não se enquadra em tarefa difícil, porem em um processo didático exemplifica sua prática.
Outro Exemplo seria copia de banco de dados:
#!/bin/bash
#exemplo de teste
#sh -x ./clonabanco.sh bancoorigem bancodest
PATH=/home/mmm/projetos/meuproj/scripts
echo "Script de replicação de banco"
databaserep=$1
database=$2
output="output.sql"
echo "Log de execucao da operacao de clonagem de banco" >> $PATH/logbkp.log
echo "Origem:$databaserep" >> $PATH/logbkp.log
echo "Destino:$database" >> $PATH/logbkp.log
echo "Data:`/usr/bin/date`" >> $PATH/logbkp.log
echo "Iniciando criacao de backup " >> $PATH/logbkp.log
echo `/usr/bin/mysqldump -uroot -pSENHA $databaserep -r $PATH/output.sql` >> $PATH/logbkp.log
echo "Escrevendo script de copia" >> $PATH/logbkp.log
echo "CREATE DATABASE $database;"> $PATH/copy.sql
echo "use $database" >> $PATH/copy.sql
echo "SOURCE $PATH/output.sql" >> $PATH/copy.sql
echo "Criando a base destino" >> $PATH/logbkp.log
echo `/usr/bin/mysql -uroot -pSENHA < $PATH/copy.sql` >> $PATH/logbkp.log
echo "Fim de execução " >> $PATH/logbkp.log
Podemos ver neste script, o uso de técnica de clonagem do banco de dados, permitindo a integração simples com JAVA.
Com este ultimo artigo, encerramos a série de artigos Java sem Nutela no Ubuntu, espero que tenham gostado.