Como fazer e restaurar um backup no Magento
Gerenciar minha loja, Magento 2
Publicado em 25 de setembro de 2023
Antes de alterar algo importante, ou antes de um deploy, é sempre importante fazermos uma cópia de segurança dos arquivos de nossa loja. Não apenas dos arquivos, mas também do banco de dados e das imagens de produtos e páginas, não é mesmo?
No Magento 2 isso é bastante simples de ser feito.
Você pode realizar um backup de código, fotos e banco de dados no Magento com apenas um comando (via terminal), como mostrado abaixo:
bin/magento setup:backup --code --media --db
O setup:backup
acima colocará sua loja em modo manutenção e realizará o backup completo dos arquivos de media (fotos de produtos e arquivos), banco de dados e dos arquivos da loja.
bin/magento setup:backup --code --media --db Enabling maintenance mode Code backup is starting... Code backup filename: 1695614833_filesystem_code.tgz (The archive can be uncompressed with 7-Zip on Windows systems) Code backup path: /var/www/html/var/backups/1695614833_filesystem_code.tgz [SUCCESS]: Code backup completed successfully. Media backup is starting... Media backup filename: 1695614833_filesystem_media.tgz (The archive can be uncompressed with 7-Zip on Windows systems) Media backup path: /var/www/html/var/backups/1695614833_filesystem_media.tgz [SUCCESS]: Media backup completed successfully. DB backup is starting... DB backup filename: 1695614833_db.sql DB backup path: /var/www/html/var/backups/1695614833_db.sql [SUCCESS]: DB backup completed successfully. Disabling maintenance mode
O backup será salvo em <pastaMagento>/var/backups
. Um arquivo para cada tipo de backup será realizado.
Habilite o recurso de backup antes de usar
Para que o recurso de backup funcione como esperado, é preciso ativá-lo. Para fazer isso, navegue até Loja > Configurações > Avançado > Sistema > Configurações de Backup e ative o mesmo.
Se preferir, digite bin/magento config:set system/backup/functionality_enabled 1
no terminal para ativá-lo.
Listando Cópias de Backup disponíveis
Como mencionei há pouco, os arquivos de backup ficam disponíveis na pasta var/backups. Mas você também pode obter uma lista amigável com o comando bin/magento info:backups:list
, como mostrado abaixo.
✗ bin/magento info:backups:list Showing backup files in /var/www/html/var/backups. +---------------------------------+-------------+ | Backup Filename | Backup Type | +---------------------------------+-------------+ | 1695614833_filesystem_code.tgz | code | | 1695614770_filesystem_code.tgz | code | | 1695602905_filesystem_code.tgz | code | | 1695614833_db.sql | db | | 1695602905_filesystem_media.tgz | media | | 1695614770_filesystem_media.tgz | media | | 1695614833_filesystem_media.tgz | media | +---------------------------------+-------------+
Restaurando um backup
Para restaurar um dos backups use o comando bin/magento setup:rollback [-c|--code-file=""] [-m|--media-file=""] [-d|--db-file=""]
`.
Ou seja, -c
para código, -m
para arquivo de media, e -d
para banco de dados.
Por exemplo:
bin/magento setup:rollback -c 1695614833_filesystem_code.tgz
O que é salvo nestes backups?
Backup de Código
Nos backups de código, o Magento salva praticamente todas as pastas. Isto inclui as pastas vendor
, generated/code
, setup
, e outras pastas de sistema. Arquivos invisíveis como .htaccess
também são salvos.
Os únicos arquivos e pastas que são ignorados por padrão são:
- Pasta Media (pub/media)
- Conteúdos estáticos (pub/static)
- Diretório Var (/var)
- /update
- /node_modules
- /.grunt
- /.idea
- /.svn
- /.git
Backup de Media
O backup de media salvará toda pasta pub/media. Neste diretório encontram-se as fotos de produtos, e arquivos enviados pelo editor visual do Magento.
Este backup também inclui arquivos de cache de imagens e não somente as imagens originais.
Se você preferir criar um backup manual sem as pastas de cache, você pode fazê-lo manualmente com o comando abaixo à partir da raiz de sua loja:
tar -czvf media.tar.gz --exclude='*/cache/*' --exclude='*/import/*' pub/media/
Backup do banco
O backup do banco é feito de forma completa sem exceções. Todas as tabelas, funções, chaves de relacionamento e tudo mais é salvo no arquivo .sql sem compactação.
Se seu objetivo com este backup é apenas de importá-lo em um ambiente de desenvolvimento ou enviá-lo para um desenvolvedor, certamente este não é o melhor caminho.
Nestes casos você deveria ocultar tabelas e dados desnecessários (ex: tabela de logs) a fim de reduzir seu tamanho e evitar o compartilhamento de dados de seus clientes e pedidos.
O arquivo gerado também encontra-se descompactado, diferente dos backups anteriores. Isto também causará um enorme desperdício de disco, já que arquivos deste tipo podem ser facilmente compactados em 90% ou mais com qualquer ferramenta.
Particularmente, eu usaria o n98-magerun ou o próprio mysqldump para este fim.
Segurança
Caso você tenha cometido o O clássico erro da pasta pub nas instalações Magento 2, lembre-se de assegura-se que ninguém conseguirá listar o conteúdo de sua pasta var/backups.
Para isso, tente acessar https://sualoja.com/var/backups e garanta que a lista dos arquivos de backup gerados não está sendo exposta. Isto permitiria que qualquer pessoa baixasse os arquivos que gerou.
- PagSeguro (PagBank) para Magento 1 recebe a Nova Geração - 9 de abril de 2024
- Recorrência no WooCommerce Sem Plugins Pagos - 28 de janeiro de 2024
- Chargeback. O que é, e como se livrar deles. - 19 de dezembro de 2023
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/magento-2/backup-magento-codigo-banco-fotos/"]