Skip to content

Vini-Paixao/Bot-Drive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Bot-Drive: Backup Automatizado para Múltiplos Sites - Vini-Python

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.

Funcionalidades

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

Requisitos

  • Python 3.x
  • Pip
  • Acesso de linha de comando aos utilitários mysqldump e zip.
  • 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).

Configurar a Conta de Serviço do Google Drive

  1. Acesse o Google Cloud Console.
  2. Crie um novo projeto ou selecione um existente.
  3. Ative a API do Google Drive para o seu projeto.
  4. Vá para "Credenciais", clique em "Criar credenciais" e selecione "Conta de serviço".
  5. 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.
  6. 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).
  7. Copie o ID da pasta do Google Drive (da URL).

Instalação

  1. Clone este repositório:

    git clone https://github.com/Vini-Paixao/Bot-Drive.git
    cd Bot-Drive
  2. Instale os pacotes Python necessários:

    pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib

Configuração

Antes de executar o script, você precisa criar e configurar o arquivo config.json na raiz do projeto.

  1. Crie um arquivo chamado config.json.
  2. 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"
    }
  ]
}

Uso

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ção

Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue ou enviar um pull request.

Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

About

Bot em Python para gerar backup e subir no Google Drive automaticamente

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages