---
name: cwp-backup
description: Criação e gestão de backups no CWP com scripts oficiais — backups de utilizador, gestão de localizações e restauro.
disable-model-invocation: true
---

# /cwp-backup - Backups CWP (Documentação Oficial)

Gestão de backups no CWP usando scripts oficiais. **Zero assumptions, zero hallucinations** - apenas comandos documentados.

**REGRA #38 - ZERO INVENCAO:** NUNCA improvisar comandos. Verificar estado actual ANTES de alterar. Pesquisar wiki CWP se necessario. Usar APENAS scripts oficiais.

---

## Servidor Alvo

| Servidor | IP | MCP | User |
|----------|-----|-----|------|
| **CWP Principal** | 176.9.3.158 | ssh-unified | root |

---

## Documentação Base

- [CWP Scripts](https://wiki.centos-webpanel.com/cwp-scripts)
- [CWP Backups](https://wiki.centos-webpanel.com/category/backups)

### Documentação Hub (Consultar SEMPRE)

**Manuais locais** (`Hub/06-Operacoes/Documentacao/Manuais/CWP/`):
- `CWP-Manual-Completo.md` - Admin Guide (seccao Backup and Restore, Google Drive) + Wiki (Backup & Migration) - **503KB**
- `CWP-Guia-do-Utilizador.md` - Painel utilizador (seccao Backup and Restore) - **72KB**

**Quick Reference:** `Hub/06-Operacoes/Documentacao/Quick-Reference/QR-CWP.md`

**NotebookLM (pesquisa AI sobre toda a documentacao CWP):**
```
mcp__notebooklm__notebook_query notebook_id:"0ded7bd6-69b3-4c76-b327-452396bf7ea7" query:"backup restore configuracao"
```

---

## Paths Oficiais

| Path | Descrição |
|------|-----------|
| `/backup/` | Localização padrão de backups |
| `/scripts/user_backup` | Script de backup de utilizador |
| `/usr/local/cwpsrv/htdocs/resources/admin/include/cron_backup.php` | Cron de backup |

---

## Comando Principal de Backup

### Criar Backup de Utilizador

```bash
# COMANDO OFICIAL DOCUMENTADO
sh /scripts/user_backup USERNAME
```

**Nota:** Este comando cria um backup completo da conta incluindo:
- Ficheiros do site
- Bases de dados
- Emails
- Configurações

---

## Scripts de Consulta

```bash
# Listar utilizadores disponíveis para backup
sh /scripts/list_users

# Verificar owner de domínio
sh /scripts/whoowns DOMINIO
```

---

## Localização dos Backups

```bash
# Ver backups existentes
ls -lh /backup/

# Espaço usado por backups
du -sh /backup/
```

---

## Workflows

### 1. Criar Backup Completo de Conta

```bash
# 1. Identificar username
sh /scripts/whoowns DOMINIO

# 2. Criar backup
sh /scripts/user_backup USERNAME

# 3. Verificar criação
ls -lh /backup/ | grep USERNAME
```

### 2. Backup Antes de Operação Crítica

```bash
# SEMPRE fazer backup antes de:
# - Actualizar WordPress
# - Migrar site
# - Alterações massivas

sh /scripts/user_backup USERNAME
```

### 3. Verificar Espaço Disponível

```bash
# Antes de criar backup, verificar espaço
df -h /backup

# Tamanho de conta específica
du -sh /home/USERNAME/
```

---

## Configuração de Backups Automáticos

**Via CWP Admin:**
- CWP.admin → CWP Settings → Backup Configuration

**Cron (documentado):**
```bash
# O CWP usa este script para backups agendados
/usr/local/cwpsrv/htdocs/resources/admin/include/cron_backup.php
```

---

## Limitações Conhecidas (Documentadas)

| Limitação | Descrição |
|-----------|-----------|
| **GUI Restore** | Documentação menciona que "não funciona confiavelmente" |
| **Tamanho** | Backups grandes podem demorar |
| **Espaço** | Verificar espaço antes de criar |

---

## Anti-Patterns (NUNCA FAZER)

| Anti-Pattern | Risco | Alternativa |
|--------------|-------|-------------|
| Backup sem verificar espaço | Disco cheio | `df -h` primeiro |
| Confiar só em backups locais | Perda total | Backup remoto também |
| Restaurar via GUI | Falha | Restaurar manualmente |
| Não testar backups | Backup inválido | Testar periodicamente |

---

## Validação Pós-Backup

```bash
# 1. Verificar ficheiro criado
ls -lh /backup/ | grep USERNAME | tail -1

# 2. Verificar integridade (tar)
tar -tzf /backup/BACKUP_FILE.tar.gz > /dev/null && echo "OK" || echo "CORRUPTO"

# 3. Verificar tamanho razoável
# (deve ser similar ao tamanho da conta)
du -sh /home/USERNAME/
ls -lh /backup/BACKUP_FILE.tar.gz
```

---

## Restauro Manual (Procedimento Seguro)

**Nota:** O restauro via GUI não é fiável segundo documentação. Procedimento manual:

```bash
# 1. Extrair backup para pasta temporária
mkdir /tmp/restore_test
tar -xzf /backup/BACKUP_FILE.tar.gz -C /tmp/restore_test

# 2. Verificar conteúdo
ls -la /tmp/restore_test/

# 3. Restaurar ficheiros manualmente
# (copiar para localização correcta)

# 4. Corrigir permissões
chown -R USERNAME:USERNAME /home/USERNAME/public_html/

# 5. Limpar temporário
rm -rf /tmp/restore_test
```

---

## Checklist de Execução

- [ ] Verificar espaço em disco (`df -h`)
- [ ] Identificar username correcto
- [ ] Executar `sh /scripts/user_backup USERNAME`
- [ ] Verificar ficheiro criado
- [ ] Testar integridade do backup
- [ ] Documentar backup realizado

---

## Boas Práticas

1. **Backup antes de qualquer operação destrutiva**
2. **Manter backups remotos** (Google Drive, S3)
3. **Testar restauro periodicamente**
4. **Documentar localização de backups**
5. **Limpar backups antigos** (>30 dias)

---

**Versão:** 1.0.0 | **Autor:** Descomplicar®
**Fonte:** wiki.centos-webpanel.com/cwp-scripts, wiki.centos-webpanel.com/category/backups

---

## Healing Log

Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.

```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
```

*Adicionar nova linha após cada erro corrigido.*
