Comando de backup Laravel
🎯 Comando Criado: backup:system
📍 Localização:
app/Console/Commands/BackupSystem.php
🚀 Como Usar
Backup completo (padrão):
php artisan backup:system
Opções disponíveis:
Apenas banco de dados
php artisan backup:system --no-storage
Apenas storage
php artisan backup:system --no-db
Manter backups por 30 dias (padrão é 7)
php artisan backup:system --keep-days=30
Caminho customizado
php artisan backup:system --path=/caminho/personalizado
Combinando opções
php artisan backup:system --keep-days=15 --path=/mnt/backups
⚙️ Configuração (.env)
Adicione no .env (opcional):
Caminho padrão para salvar backups (opcional, padrão: storage/backups)
BACKUP_PATH=/caminho/para/backups
🎁 Recursos Implementados
✅ Totalmente Genérico - Usa configurações do Laravel (database.php e .env)
✅ Compactação Máxima - Usa 7z com nível 9 (fallback para tar.gz)
✅ Auto-detecta 7z - Se não tiver 7z, usa tar.gz automaticamente
✅ Backup do Banco - Suporta MySQL/MariaDB via mysqldump
✅ Backup do Storage - Compacta toda pasta storage (exclui backups e temp)
✅ Limpeza Automática - Remove backups antigos (configurável)
✅ Nome Dinâmico - Usa APP_NAME + timestamp
✅ Progresso Visual - Mostra emojis e informações detalhadas
✅ Tratamento de Erros - Valida cada etapa
📦 Formato do Arquivo
O backup final terá o formato: {app_name}backup{YYYY-MM-DD_HHmmss}.7z
Exemplo: organizeme_backup_2026-01-11_143052.7z
🔧 Instalar 7z (se necessário)
Ubuntu/Debian:
sudo apt-get install p7zip-full
Windows:
# Baixar de: https://www.7-zip.org/
# Ou via chocolatey:
choco install 7zip
⏰ Automatizar com Cron
Adicionar no app/Console/Kernel.php:
protected function schedule(Schedule $schedule)
{
// Backup diário às 2h da manhã
$schedule->command('backup:system')->dailyAt('02:00');
// Ou backup a cada 6 horas
$schedule->command('backup:system')->everySixHours();
}
Ou usar crontab diretamente: crontab -e
# Adicionar:
0 2 * * * cd /caminho/projeto && php artisan backup:system >> /dev/null 2>&1
🔄 Reutilizar em Outros Projetos
Basta copiar o arquivo:
cp app/Console/Commands/BackupSystem.php /outro-projeto/app/Console/Commands/
O comando é 100% genérico e funcionará em qualquer projeto Laravel!
📊 Exemplo de Saída
🚀 Iniciando backup do sistema... Timestamp: 2026-01-11_143052 ✅ Usando 7z para compactação máxima 📦 Iniciando backup do banco de dados... └─ Tamanho: 2.45 MB ✅ Backup do banco de dados concluído 📦 Iniciando backup do storage... └─ Tamanho: 15.32 MB ✅ Backup do storage concluído 📦 Criando backup final... ✅ Backup final criado: organizeme_backup_2026-01-11_143052.7z
📊 Informações do Backup: └─ Arquivo: organizeme_backup_2026-01-11_143052.7z └─ Tamanho: 4.23 MB └─ Caminho: /var/www/storage/backups/organizeme_backup_2026-01-11_143052.7z 🧹 Limpando backups com mais de 7 dias... └─ 2 backup(s) antigo(s) removido(s) 🎉 Backup concluído com sucesso!
Está tudo pronto! Quer que eu teste o comando agora
Comentários (0)
Seja o primeiro a comentar!
Deixe seu comentário