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
- 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
- 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.
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!!!