{"id":21151,"date":"2022-06-27T21:08:36","date_gmt":"2022-06-28T00:08:36","guid":{"rendered":"http:\/\/maurinsoft.com.br\/?p=21151"},"modified":"2022-06-27T21:08:36","modified_gmt":"2022-06-28T00:08:36","slug":"java-sem-nutela-no-ubuntu-parte-3","status":"publish","type":"post","link":"https:\/\/maurinsoft.com.br\/wp\/java-sem-nutela-no-ubuntu-parte-3\/","title":{"rendered":"Java sem nutela no Ubuntu \u2013 Parte 3"},"content":{"rendered":"\n<p>Estarei neste t\u00f3pico apresentando como integrar linux com JAVA, de forma que possamos utilizar recursos do sistema operacional de forma que possamos ganhar maior agilidade.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"porque-usar-o-so\">Porque usar o SO<\/h2>\n\n\n\n<p>\u00c9 interessante criar rotinas integr\u00e1veis para o sistema operacional para ganhar agilidade e performace.<\/p>\n\n\n\n<p>Como utilizar?<\/p>\n\n\n\n<p>Podemos chamar aplica\u00e7\u00f5es:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>shell script<\/strong>&#8211; Quando queremos agregar opera\u00e7\u00f5es em lote, exemplo copiar uma pasta.<\/li><li><strong>aplica\u00e7\u00e3o terceira<\/strong> &#8211; Quando queremos aproveitar features especificas da linguagem, exemplo uso de python para IA.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"quando-nao-utilizar-o-so\">Quando n\u00e3o utilizar o SO<\/h2>\n\n\n\n<p>Existem muitos motivos para usar, e outros motivos que rejeitam o uso.<\/p>\n\n\n\n<p>O mais importante motivo que rejeita seu uso, \u00e9 quando queremos criar aplica\u00e7\u00f5es que n\u00e3o dependem do SO, podendo ser desacoplada de qualquer plataforma.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aplicacoes\">Aplica\u00e7\u00f5es<\/h2>\n\n\n\n<p>Aplica\u00e7\u00f5es de infra, necess\u00e1rias para cria\u00e7\u00e3o de servi\u00e7os ou recursos, associados a um dado SO.<\/p>\n\n\n\n<p>Podemos utilizar um servi\u00e7o por exemplo para criar ambientes automatizados, criando ambientes de forma r\u00e1pida e autom\u00e1tica, replicando o que um operador faria em processos manuais.<\/p>\n\n\n\n<p>Exemplos:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Clonagem de banco de dados<\/li><li>Copiar arquivos<\/li><li>Montagem de Servi\u00e7os<\/li><li>Gest\u00e3o de recursos do SO<\/li><li>Manipula\u00e7\u00e3o de containers ou servi\u00e7os.<\/li><li>Gest\u00e3o de testes integrados, etc<\/li><\/ul>\n\n\n\n<p>Como chamar aplica\u00e7\u00f5es<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\tpublic static int ProgExt(String Param01, String Param02)  throws IOException {\n\t\tint Resultado = 0;\n\t\tSystem.out.println (\"Chamando ProgExt... \");\n\t\tRuntime rt = Runtime.getRuntime();\n        String&#91;] commandAndArguments = {\"\/home\/mmm\/projetos\/meuproj\/scripts\/ScripExt.sh\",  Param01, Param02 };\n\t\tSystem.out.println(commandAndArguments);\n        try {\n\t\t\tString s;\n\t\t\tSystem.out.println (\"ProgExt- Exec commandAndArguments completo\");\n\t\t\tProcess p = rt.exec(commandAndArguments);\n\t\t\tp.waitFor();\n\t\t\tResultado = p.exitValue();\n            System.out.println (\"ProgExt- exit: \" + Resultado);\n\n            p.destroy();\n\t\t} catch(Exception ex) {\n            ex.printStackTrace();\n        }\n\n\t\treturn Resultado;\n\t}<\/code><\/pre>\n\n\n\n<p>Ao Realizar a chamada o ScriptExt.sh, passamos os par\u00e2metros, conforme o script abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\nORIGEM=$1\nDESTINO=$2\n\nPATH=\/home\/mmm\/projetos\/meuproj\/scripts\n\n\necho \"Inicio de Log\" &gt;  $PATH\/logbkp.log\necho \"Iniciando copia de arquivo\" &gt;&gt;  $PATH\/logbkp.log\n\n\/usr\/bin\/cp -r $ORIGEM $DESTINO &gt;&gt;  $PATH\/logbkp.log<\/code><\/pre>\n\n\n\n<p>O modelo deste script, permite capturar pela shell script os par\u00e2metros recebidos do JAVA, realizando tarefas via scripts, permitindo aproveitar o que o JAVA teria maior dificuldade em realizar.<\/p>\n\n\n\n<p>De fato a automa\u00e7\u00e3o de c\u00f3pia, n\u00e3o se enquadra em tarefa dif\u00edcil, porem em um processo did\u00e1tico exemplifica sua pr\u00e1tica.<\/p>\n\n\n\n<p>Outro Exemplo seria copia de banco de dados:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\n#exemplo de teste\n#sh -x  .\/clonabanco.sh bancoorigem bancodest\n\nPATH=\/home\/mmm\/projetos\/meuproj\/scripts\n\necho \"Script de replica\u00e7\u00e3o de banco\"\n\ndatabaserep=$1\n\ndatabase=$2\n\noutput=\"output.sql\"\n\n\necho \"Log de execucao da operacao de clonagem de banco\" &gt;&gt;  $PATH\/logbkp.log\n\necho \"Origem:$databaserep\" &gt;&gt;  $PATH\/logbkp.log\necho \"Destino:$database\" &gt;&gt;  $PATH\/logbkp.log\necho \"Data:`\/usr\/bin\/date`\" &gt;&gt;  $PATH\/logbkp.log\n\n\n\necho \"Iniciando criacao de backup \" &gt;&gt;  $PATH\/logbkp.log\necho `\/usr\/bin\/mysqldump -uroot -pSENHA $databaserep -r $PATH\/output.sql` &gt;&gt; $PATH\/logbkp.log\n\n\necho \"Escrevendo script de copia\" &gt;&gt;  $PATH\/logbkp.log\n\necho \"CREATE DATABASE $database;\"&gt; $PATH\/copy.sql\necho \"use $database\" &gt;&gt; $PATH\/copy.sql\necho \"SOURCE $PATH\/output.sql\" &gt;&gt; $PATH\/copy.sql\n\necho \"Criando a base destino\" &gt;&gt;  $PATH\/logbkp.log\n\necho `\/usr\/bin\/mysql -uroot -pSENHA &lt; $PATH\/copy.sql` &gt;&gt; $PATH\/logbkp.log\n\necho \"Fim de execu\u00e7\u00e3o \" &gt;&gt;  $PATH\/logbkp.log\n\n\n<\/code><\/pre>\n\n\n\n<p>Podemos ver neste script, o uso de t\u00e9cnica de clonagem do banco de dados, permitindo a integra\u00e7\u00e3o simples com JAVA.<\/p>\n\n\n\n<p>Com este ultimo artigo, encerramos a s\u00e9rie de artigos Java sem Nutela no Ubuntu, espero que tenham gostado.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Estarei neste t\u00f3pico 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 \u00c9 interessante criar rotinas integr\u00e1veis para o sistema operacional para ganhar agilidade e performace. Como utilizar? Podemos chamar aplica\u00e7\u00f5es: shell script&#8211; Quando queremos agregar opera\u00e7\u00f5es em [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":480,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[65],"tags":[244],"class_list":["post-21151","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-java"],"_links":{"self":[{"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/posts\/21151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/comments?post=21151"}],"version-history":[{"count":0,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/posts\/21151\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/media?parent=21151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/categories?post=21151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/wp-json\/wp\/v2\/tags?post=21151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}