====== PBS — Prune Individual por VM/CT ====== Script para configurar políticas de retenção individuais por VM ou CT no Proxmox Backup Server. Exemplo: vm/100 7 vm/101 15 ct/200 30 Cada grupo pode possuir seu próprio ''keep-last''. ===== Pré-requisitos ===== Antes de executar: * Proxmox Backup Server acessível; * ''proxmox-backup-client'' instalado; * acesso ''root'' ao servidor onde o script será instalado; * um usuário existente no PBS; * API Token associado a esse usuário; * permissão no datastore que será utilizado. O API Token sempre pertence a um usuário existente. Exemplos: root@pam!prune backup@pbs!prune A permissão deve ser aplicada no datastore utilizado: proxmox-backup-manager acl update /datastore/backup DatastoreAdmin --auth-id 'backup@pbs!prune' Substitua ''backup'' pelo nome do seu datastore e utilize o usuário/token criado no seu ambiente. ===== Download ===== Baixe o script diretamente: [[https://cursoproxmox.com.br/prune/pbs-prune-setup.sh|pbs-prune-setup.sh]] ===== Instalação ===== No PBS: chmod +x /root/pbs-prune-setup.sh /root/pbs-prune-setup.sh O assistente solicitará: * endereço do PBS; * datastore; * namespace, se utilizado; * API Token; * VMs/CTs; * quantidade de backups a manter; * agendamento. Antes da instalação é possível realizar um ''dry-run''. ===== Estrutura criada ===== Após a instalação: /usr/local/sbin/ └── pbs-prune /etc/pbs-prune/ ├── pbs-prune.conf ├── groups.conf └── secret /etc/cron.d/ └── pbs-prune /etc/logrotate.d/ └── pbs-prune /var/log/ └── pbs-prune.log Arquivos principais: ^ Arquivo ^ Função ^ | ''/usr/local/sbin/pbs-prune'' | Executor do prune | | ''/etc/pbs-prune/pbs-prune.conf'' | Configuração | | ''/etc/pbs-prune/groups.conf'' | Retenção por VM/CT | | ''/etc/pbs-prune/secret'' | Secret do API Token | | ''/etc/cron.d/pbs-prune'' | Agendamento | | ''/var/log/pbs-prune.log'' | Log das execuções | ===== Configuração das VMs/CTs ===== Arquivo: /etc/pbs-prune/groups.conf Exemplo: vm/100 7 vm/101 15 ct/200 30 Formato: GRUPO KEEP-LAST ===== Comandos ===== Simular: pbs-prune --dry-run Executar: pbs-prune Listar grupos: pbs-prune --list Acompanhar log: tail -f /var/log/pbs-prune.log ===== Garbage Collection ===== O prune remove as referências dos snapshots. O espaço físico no datastore será efetivamente recuperado após a execução do **Garbage Collection (GC)**. Por isso, recomenda-se executar na ordem: Backup → Prune Individual → Garbage Collection ===== Desinstalação ===== /root/pbs-prune-setup.sh --uninstall A desinstalação remove o executor, configurações, cron e logrotate. O API Token criado no PBS não é removido automaticamente.