Este projeto é um bot em Python que gera e envia backups de múltiplos sites para o Google Drive. Ele compacta os arquivos de cada site junto com um dump do banco de dados MySQL e faz o upload para uma pasta específica no Google Drive.
- Backup de Múltiplos Sites: Configuração centralizada em um arquivo
config.json
para gerenciar vários sites. - Autenticação Segura: Usa uma conta de serviço do Google para autenticação segura com a API do Google Drive.
- Backup Completo: Gera um dump do banco de dados MySQL e o compacta junto com os arquivos do site.
- Upload Automatizado: Envia o arquivo
.zip
gerado para uma pasta no Google Drive. - Gerenciamento de Espaço: Exclui backups antigos do mesmo site no Google Drive antes de enviar um novo.
- Logging Detalhado: Gera logs de todo o processo para fácil depuração.
- Python 3.x
- Pip
- Acesso de linha de comando aos utilitários
mysqldump
ezip
. - Pacotes Python:
google-api-python-client
,google-auth-httplib2
,google-auth-oauthlib
- Credenciais da API do Google Drive (arquivo JSON de uma conta de serviço).
- Acesse o Google Cloud Console.
- Crie um novo projeto ou selecione um existente.
- Ative a API do Google Drive para o seu projeto.
- Vá para "Credenciais", clique em "Criar credenciais" e selecione "Conta de serviço".
- Preencha os detalhes, conceda as permissões necessárias e baixe o arquivo de credenciais JSON. Renomeie este arquivo para
service_account.json
e coloque-o na raiz do projeto. - No Google Drive, crie uma pasta para os backups e compartilhe-a com o e-mail da conta de serviço que você criou (ex:
nome-da-conta@seu-projeto.iam.gserviceaccount.com
). - Copie o ID da pasta do Google Drive (da URL).
-
Clone este repositório:
git clone https://github.com/Vini-Paixao/Bot-Drive.git cd Bot-Drive
-
Instale os pacotes Python necessários:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
Antes de executar o script, você precisa criar e configurar o arquivo config.json
na raiz do projeto.
- Crie um arquivo chamado
config.json
. - Copie o conteúdo do modelo abaixo e cole no seu arquivo, alterando os valores para refletir sua configuração.
config.json
(Exemplo):
{
"drive_folder_id_global": "ID_DA_SUA_PASTA_PRINCIPAL_NO_DRIVE",
"service_account_file": "service_account.json",
"log_file_path": "/tmp/backup_multisite.log",
"sites": [
{
"site_name": "MeuSiteWordPress",
"target_folder": "/var/www/html/meusite",
"db_user": "user_wp",
"db_password": "password_wp",
"db_name": "database_wp",
"zip_name_prefix": "backup_wordpress"
},
{
"site_name": "OutroProjeto",
"target_folder": "/home/user/projetos/outro",
"db_user": "user_outro",
"db_password": "password_outro",
"db_name": "database_outro",
"zip_name_prefix": "backup_outroprojeto"
}
]
}
Para iniciar o processo de backup para todos os sites configurados, execute o script Bot-Drive.py
:
python Bot-Drive.py
O script irá iterar por cada site listado no config.json
, realizar o backup e fazer o upload para o Google Drive.
Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue ou enviar um pull request.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE
para mais detalhes.