Script de backup automático para GLPI

· 3 minutos de leitura
Script de backup automático para GLPI
Script de backup automático para GLPI

Este é um script de shell desenvolvido para realizar backups automáticos do sistema GLPI, um software de gestão de tickets de suporte e inventário de ativos. O script automatiza o processo de backup do banco de dados MySQL e dos diretórios relevantes do sistema.

Requisitos

  • 7zip: para compactar os nossos arquivos de backup.
  • Bash: o script é escrito em Bash, portanto, é necessário ter o interpretador Bash instalado no sistema.
  • GLPI: Este script é projetado para fazer backup de instalações do GLPI.
  • mysqldump: o comando mysqldump é utilizado para criar um backup do banco de dados MySQL.

Configurações

As configurações do banco de dados GLPI são obtidas do arquivo /etc/glpi/config_bkp.php. Aqui está um exemplo do conteúdo desse arquivo:

<?php
class DB extends DBmysql {
   public $dbhost = 'localhost';
   public $dbuser = 'backup';
   public $dbpassword = 'senha-backup-user';
   public $dbdefault = 'glpi';
}

O script extrai as informações de conexão do banco de dados a partir desse arquivo.

Funcionalidades

  • Backup do banco de dados: o script realiza um backup do banco de dados GLPI utilizando o comando mysqldump.
  • Backup dos diretórios: além do banco de dados, o script também faz backup dos diretórios relevantes do GLPI, como /usr/share/glpi, /etc/glpi e /var/lib/glpi.
  • Compactação dos backups: os backups são compactados usando o formato 7z para economizar espaço de armazenamento.
  • Limpeza automática: o script remove backups antigos, garantindo que apenas os backups recentes sejam mantidos.

Como usar

  1. Definir qual o diretório será usado para manter o script de backup, no nosso exemplo vamos deixa-lo no /backup, então vamos criar o diretório:
mkdir /backup

2. Realizar a criação do arquivo de configuração do backup  no diretório /etc/glpi/config_bkp.php,  como exemplo citado acima.

3. Com o nosso diretório de backup e o arquivo de configuração criados, vamos seguir com a elaboração do nosso script:

vi /backup/backup_glpi.sh
#!/bin/bash

DBCONFIG='/etc/glpi/config_bkp.php';
DBHOST=`grep "dbhost" $DBCONFIG | cut -d "'" -f 2`;
DBUSER=`grep "dbuser" $DBCONFIG | cut -d "'" -f 2`;
DBPASS=`grep "dbpassword" $DBCONFIG | cut -d "'" -f 2`;
DBNAME=`grep "dbdefault" $DBCONFIG | cut -d "'" -f 2`;

# Define o diretório de backup do GLPI
DIR="/backup/glpi/";
if [ ! -d $DIR ]; then
    echo "Criando diretório de backup do cliente"
    mkdir /backup
    mkdir $DIR
    mkdir $DIR/app
    mkdir $DIR/sql
fi

# Define o formato do nome do arquivo de backup
DB="glpi-DB-`date +%d_%m_%Y-%H_%M`"

# Gerando o arquivo SQL com o mysqldump.
#IP INTERNO
mysqldump -h$DBHOST --single-transaction --no-tablespaces --user=${DBUSER} --password=${DBPASS} glpi > $DIR/sql/$DB.sql

# Abrindo o diretório
cd $DIR/sql

# Compactando o arquivo para que não fique muito grande
7z a $DB.7z $DB.sql

# Removendo o arquivo original para liberar espaço
rm -f $DIR/sql/$DB.sql

# Removendo arquivos com mais de 15 dias
find $DIR/sql/*.7z -ctime +15 -exec rm -rf {} \;

# Removendo o backup da instalação completa anterior
rm -f $DIR/app/glpi_app.7z

# Refaz o backup da instalação completa
7z a $DIR/app/glpi_app.7z /usr/share/glpi

# Removendo o backup da instalação completa anterior
rm -f $DIR/app/glpi_db.7z

# Refaz o backup da instalação completa
7z a $DIR/app/glpi_db.7z /etc/glpi

# Removendo o backup da instalação completa anterior
rm -f $DIR/app/glpi_lib.7z

# Refaz o backup da instalação completa
7z a $DIR/app/glpi_lib.7z /var/lib/glpi

Execução do script

Para executar o script manualmente, basta chamá-lo a partir do terminal:

sh /backup/backup_glpi.sh

Mas tendo como necessidade a automação deste script, é necessária a criação de uma rotina na crontab do servidor, para que a execução seja automática:

crontab -e
00 23 * * * sh /backup/backup_glpi.sh

Após ajustar a rotina na crontab, será necessário a reinicialização do serviço:

systemctl restart crond
⚠️
Importante
- Certifique-se de revisar e testar este script em um ambiente de teste antes de usá-lo em produção.

- Mantenha as informações de autenticação do banco de dados seguras e não as compartilhe publicamente.

- Ajuste o cronograma de execução do script de acordo com as necessidades e o volume de dados do seu sistema GLPI.

Lancamento Travessia 2024
Um projeto de treinamento voltado a comunidade, para engajar pessoas a gerenciar servicos em uma jornada de conhecimento e aprendizado, superando obstaculos ou desafios na implantacao de uma Central de Serviços para ITSM e ESM/CSC com GLPI e Metabase.

Como implantar o GLPI?

Na Servicedesk Brasil cuidamos de tudo, desde a consultoria, alinhamento estratégico, implementação, automação de processos, fluxos, identidade visual personalizada, suporte, treinamento e desenvolvimento ou integração.

Nosso lema é ajudar o seu negócio crescer, aqui tem um Time esperando o seu Projeto de GLPI, permita que possamos potencializar e digitalizar os processos da sua organização!

A gente come, bebe e dorme GLPI. Somos APAIXONADOS pelo que fazemos.

Fale com um especialista: falecom@servicedeskbrasil.com.br
Nós queremos te ouvir!!!