Este script Python é usado para realizar backups automatizados de arquivos, bancos de dados MySQL e configurações do PFSense com base nas tarefas ativas definidas no arquivo de configuração YAML.
Este projeto está atualmente em desenvolvimento e tem como objetivo fornecer um script de backup automatizado para arquivos, bancos de dados MySQL e configurações do PFSense. O objetivo é tornar o processo de backup mais eficiente e simplificado para os usuários.
O script já possui funcionalidades básicas implementadas para realizar backups de arquivos e bancos de dados MySQL, além de capturar as configurações do PFSense. No entanto, o projeto ainda está em fase inicial de desenvolvimento e pode conter erros ou melhorias a serem feitas.
Sua colaboração é bem-vinda! Se você encontrar problemas, tiver sugestões de melhorias ou quiser adicionar novas funcionalidades, fique à vontade para abrir uma issue ou enviar um pull request. Sinta-se à vontade para discutir ideias, propor alterações ou tirar dúvidas no processo de desenvolvimento.
- Faça um fork deste repositório.
- Crie uma branch com o nome da funcionalidade ou correção que você está adicionando (
git checkout -b minha-nova-funcionalidade). - Faça as alterações desejadas no código.
- Commit suas alterações (
git commit -m 'Adicionando nova funcionalidade'). - Envie suas alterações para o seu fork (
git push origin minha-nova-funcionalidade). - Abra um pull request para este repositório.
- Aguarde a análise e discussão da sua contribuição.
- Python 3.x instalado.
O script requer um arquivo YAML de configuração para definir as tarefas de backup e outras configurações relacionadas. O formato do arquivo YAML deve seguir a estrutura exemplificada abaixo:
# Exemplo de arquivo de configuração YAML
activeTasks:
backupFiles: true
backupMysql: true
backupPFsense: true
# Definições das tarefas de backup...O script depende de alguns módulos personalizados (definidos no arquivo modules.py) e do módulo yaml, que é usado para carregar as configurações do arquivo YAML.
Para executar o script, siga os passos abaixo:
- Garanta que todas as dependências estejam instaladas.
- Crie o arquivo YAML de configuração seguindo o formato descrito acima.
- Execute o script Python fornecendo o caminho para o arquivo de configuração como argumento:
$ python backup_script.py /caminho/para/arquivo_de_configuracao.yaml
O script funcionará da seguinte maneira:
- Carregará as configurações do arquivo YAML de acordo com as tarefas ativas.
- Iniciará as tarefas de backup de arquivos, MySQL e PFSense, conforme definido nas configurações.
- O progresso e informações sobre o andamento do backup serão registrados em um arquivo de log.
O arquivo YAML abaixo contém as configurações necessárias para o funcionamento do script de backup automatizado. O script é responsável por realizar backups de arquivos, bancos de dados MySQL e configurações do PFSense, de acordo com as tarefas ativas definidas neste arquivo.
O arquivo YAML está organizado da seguinte forma:
activeTasks:
backupFiles: true
backupMysql: true
backupPFsense: true
activeMonitor:
zbxModule: true
influxModule: false
backupFiles:
addrs:
- destination: "/caminho/para/destino"
diffActive: false
host: exemplo.com
origin: "/caminho/para/origem"
user: username
rsyncOptions: "--verbose --recursive --compress --stats"
nKeepDays: 180
backupMysql:
addrs:
- conName: conexao1
dbName: database1
ip: 192.168.1.100
pwdUnsafeAuth: 'senha123'
pwdName: dbBackup-conexao1
pwdUser: userbackup
mysqlDumpOptions: "--column-statistics=0"
nKeepDays: 1
backupDir: "/caminho/para/backup/mysql"
backupPFsense:
addrs:
destination: "/caminho/para/destino/pfsense"
ips:
- 192.168.1.1
user: admin
nKeepDays: 1
log:
dir: "/caminho/para/diretorio/log"
zabbix:
configFile: "/caminho/para/zabbix_agentd.conf"activeTasks: Define as tarefas de backup ativas ou inativas. Se um valor fortrue, a tarefa correspondente será executada; se forfalse, a tarefa será ignorada.activeMonitor: Configurações para módulos de monitoramento.backupFiles: Configurações para o backup de arquivos.addrs: Lista de endereços de origem e destino dos arquivos a serem copiados.nKeepDays: Número de dias para manter os backups de arquivos.
backupMysql: Configurações para o backup de bancos de dados MySQL.addrs: Lista de conexões de bancos de dados MySQL a serem copiadas.nKeepDays: Número de dias para manter os backups de bancos de dados MySQL.backupDir: Diretório de destino para os backups do MySQL.
backupPFsense: Configurações para o backup das configurações do PFSense.addrs: Configurações para conexão com o PFSense.nKeepDays: Número de dias para manter os backups das configurações do PFSense.
log: Configurações do diretório para os arquivos de log.zabbix: Configuração do arquivo de configuração do Zabbix.
Substitua os valores de exemplo pelos valores reais que correspondem às suas configurações. Lembre-se de ajustar corretamente os caminhos dos diretórios, IPs, nomes de banco de dados, usuários e senhas de acordo com o ambiente em que o script será executado.
Este script é fornecido apenas como exemplo e pode não funcionar sem a implementação completa das funções e módulos referenciados. Certifique-se de adaptar o código para suas necessidades específicas e garantir a correta implementação dos módulos modules.py e das funções utilizadas.
Lembrando que esta documentação é um ponto de partida e pode ser estendida ou adaptada conforme o desenvolvimento do projeto e a implementação completa das funções e módulos necessários. É importante que a documentação esteja sempre atualizada à medida que o script evolui.
