Desenvolvimento de interface web para a utilização do bacula

Marcos Túlio Gouveia¹

Abstract. The present article deals with the implementation of web interface for the use of the backup service. Because the canister is a backup management software that is handled only by the command line, deploying the web interface on the system will make it easier to use the software as it will not require the use of commands to administer backups, restore and verify the data of the computers on the network, the entire treatment of routines will be done by the web administrator as the barrel running in the background.

Resumo. O presente artigo trata-se da implantação de interface web para a utilização do serviço de backup bacula. Como o bacula é um software de administração de backup que é manuseado apenas por linha de comando, implantação da interface web no sistema irá facilitar a utilização do software, pois não será necessário a utilização de comandos para administrar backups, restaurar e verificar os dados dos computadores na rede, todo o tratamento das rotinas será feito pelo administrador na web como o bacula rodando em segundo plano.

Palavras-chave: Bacula, backup, Interface Web.

1. Introdução

Para que todo o sistema de computadores de um ambiente corporativo se mantenha em bom funcionamento sem a perda de nenhuma informação, o backup dos dados é um procedimento indispensável. A única forma de recuperar informações, em caso de qualquer problema que possa vim a ocorrer (problemas de hardware ou de software dos equipamentos, arquivos corrompidos, vírus, intervenção humana ou da natureza) é o backup.

Bacula é um software multiplataforma de backup, ele é utilizado para gerenciar, verificar e recuperar dados em diferentes tipos de rede. Toda instalação, configuração e utilização do software é feita através de linha de comando. O bacula utiliza 3 tipos de backup: o full (backup completo dos dados), incremental (faz cópia somente dos dados alterados desde o último backup executado) e o diferencial (copia os dados alterados após um backup full).

Com o objetivo de facilitar a utilização do sistema de backup bacula fazendo com que o administrador não necessite fazer a utilização de linhas de comando para fazer o tratamento de rotinas de backup na rede corporativa, este artigo tem como objetivo mostrar como foi feita a aplicação de interface web para a utilização do software bacula.

2. Objetivo

Depois do bacula instalado e configurado no servidor de backup, mostrar como foi feito a interface web para a utilização do sistema de backup, deixando ele totalmente independente da execução de linhas de comando, todo processo será feito na página web e os comandos para a execução dos processos serão rodados em segundo plano sem a visualização do administrador do sistema, ou seja, o indivíduo que está administrando o software terá toda uma interface web para fazer todas as rotinas de backup dos hosts na rede como: saber o tamanho de cada backup feito, visualizar a data de cada backup, escolher o tipo de backup que será realizado, fazer restauração e deletar dados.

3. Metodologia

O intuito de desenvolver a aplicação web deixando o bacula rodando em segundo plano sem que o administrador visualize é facilitar o manuseio da ferramenta e tornar mais rápido e prático a execução e visualização dos processos de backup, tudo sendo feito na página web sem a necessidade de digitar os comandos exigidos pela ferramenta.

Primeiramente foi feita toda estrutura da página em html e css para o layout da página.

Index.html

Style.css, Css para a customização do index.html

Após feita toda a estrutura do site com o index e o CSS, foi criado 3 APIs em php, nesses três arquivos vão ter os comandos utilizados pelo bacula armazenados em variáveis, após a execução dessas APIs será gerado um json dinâmico que passará as informações para arquivo javascript que pegará todas as informações do json gerado pelas 3 APIs em php e jogar toda a informação para a interface web criada, para que o administrador execute todo o processo de backup pelo site.

Primeira API criada foi a preg.php, essa API gera o tipo de backup que o administrador deseja realizar (o full ou incremental)

A segunda API criada foi bytes.php, essa API gera os dados do tamanho dos backups feitos.

A terceira e última API criada foi a 3.php, essa API vai gerar todas as datas dos backups realizados.

Após criada as 3 APIs foi criado o javascript que pegará as informações do json dinâmico gerado pelas APIs php e jogará toda informação na página web criada.

Arquivo Javascript, master.js.

4. Resultados

Após todo o processo de desenvolvimento da página como foi mostrado no tópico metodologia; a criação da página em html, o CSS para a customização do site, as APIs onde vai ser chamado o shell e realizar os comandos do bacula, o java para pegar o json dinâmico gerado pelas APIs e integrar o site ao sistema de backup bacula, o resultado final do desenvolvimento da página ficou como na imagem abaixo.

Todo o funcionamento do bacula será por meio dessa interface web, bastando clicar na opção desejada, tudo será realizado em segundo plano pelo software e posteriormente será mostrado os resultados ao administrador do sistema no próprio site.

7. Conclusão

Verificando o resultado final da interface web criada para a utilização do bacula, todo o processo para a realização de backups e restauração de arquivos será feita de forma muito mais rápida, prática e intuitiva, pois tudo estará disponível no próprio site para o administrador realizar as tarefas, o que deixou a utilização do bacula totalmente independente de realização de comandos, as linhas de comandos serão realizadas não por quem está utilizando o software, e sim pelo próprio sistema que foi criado. Todo o projeto está disponível em: https://github.com/alessioaarf/web-bacula

Referências

FARIA, H. Comandos do Bacula: Redirecionar Comandos do Bash para o Bconsole. Disponível em:

<http://bacula.us/redirecionar-comandos-do-bash-para-o-bconsole/>. Acesso em: 19 jul. 2018.

LOP, Carvalho. Backup com Bacula — Primeiro cliente linux. Disponível em: <https://tisemestresse.blogspot.com/2016/04/bacula-client.html>. Acesso em: 26 jul. 2018.

FARIA, H. Guia rápido de operação do “Bacula”. Disponível em: <http://www.bacula.com.br/guia-rapido-de-operacao-do-bacula/>. Acesso em: 19 jul. 2018.

STARR-BOCHICCHIO, André. How To Install Bacula Server on Ubuntu 14.04. Disponível em: <https://www.digitalocean.com/community/tutorials/how-to-install-bacula-server-on-ubuntu-14-04>. Acesso em: 18 jul. 2018.