# Welche Gäste?
Eine Gruppe sucht sich ihre Gäste über eine oder mehrere Regeln. Dabei gilt:
Alle Einschluss-Regeln wirken als **ODER** — wer *eine* davon erfüllt, ist dabei.
Alle Ausschluss-Regeln **gewinnen immer** — auch gegen `all = yes`.
```ini
all = yes # alle VMs und Container
vmids = 100,101,105-110 # nach ID, auch Bereiche
names = web-*, db-0? # nach Name, mit Platzhaltern
tags = produktion, wichtig # nach Proxmox-Tag
pools = Kunden # nach Proxmox-Pool
types = qemu # nur VMs (lxc = nur Container; leer = beides)
exclude_vmids = 999
exclude_names = *-test
exclude_tags = nosnap
```
Kontrollieren lässt sich das Ergebnis an zwei Stellen: unten in der
[Gruppenmaske](editor.md#eine-gruppe-bearbeiten) („Trifft aktuell zu auf …") und
mit `pvesnap vms`.
---
## Tags
**Der empfohlene Weg.** Die Auswahl steht dann bei der VM, nicht in der
Konfiguration — und eine neue Maschine ist mit einem Klick dabei, ohne dass
jemand `pvesnap.conf` anfassen muss.
```ini
tags = produktion
```
In Proxmox setzen:
```bash
qm set 101 --tags produktion,datenbank
pct set 110 --tags produktion
```
Oder in der Oberfläche unter **VM → Optionen → Tags**.
Groß- und Kleinschreibung ist egal; pvesnap vergleicht in Kleinbuchstaben.
Mehrere Tags an einer VM trennt Proxmox mit `;` oder `,` — beides wird gelesen.
!!! tip "Ein Tag je Zeitplan"
Bewährt hat sich, die Tags nach dem Sicherungsrhythmus zu benennen und
nicht nach der Funktion:
```ini
[group:stuendlich]
tags = stuendlich
[group:taeglich]
tags = produktion
```
Dann sieht man in der Proxmox-Oberfläche an jeder VM sofort, wie oft sie
gesichert wird — ohne die Konfiguration zu öffnen.
---
## VMIDs
```ini
vmids = 100,101,105-110,200
```
Einzelne IDs und Bereiche, durch Komma getrennt. Am bequemsten über die
[VM-Auswahl](editor.md#vms-aus-einer-liste-wahlen) im Editor.
Präzise, aber pflegeintensiv: Jede neue Maschine muss von Hand nachgetragen
werden. Für kleine, feste Zusammenstellungen in Ordnung, für alles Wachsende
sind Tags besser.
---
## Namensmuster
```ini
names = web-*, db-0?
```
| Zeichen | |
|---|---|
| `*` | beliebig viele Zeichen |
| `?` | genau ein Zeichen |
| `[abc]` | eines dieser Zeichen |
Praktisch bei sauberer Namenskonvention (`web-01`, `web-02`, `db-01`),
gefährlich ohne: Eine VM, die jemand `web-test-alt` nennt, fällt in `web-*`
hinein. Dagegen hilft ein `exclude_names = *-test`.
---
## Pools
```ini
pools = Kunden
```
Nach dem Proxmox-Pool. Sinnvoll, wenn die Pools ohnehin nach Kunde oder
Abteilung geschnitten sind — dann sichert eine Gruppe genau einen Mandanten.
---
## Gasttyp
```ini
types = qemu # nur virtuelle Maschinen
types = lxc # nur Container
types = # beides (Vorgabe)
```
Nützlich in Verbindung mit `vmstate = yes`, das ohnehin nur für QEMU gilt: Eine
Gruppe mit RAM-Sicherung für die VMs, eine ohne für die Container.
---
## Ausschlüsse
```ini
exclude_vmids = 999
exclude_names = *-test, temp-*
exclude_tags = nosnap, pvesnap-recovery
```
Ausschlüsse schlagen alles. Auch `all = yes`.
!!! success "Zwei Ausschlüsse, die in jede `all`-Gruppe gehören"
```ini
exclude_tags = nosnap, pvesnap-recovery
```
**`nosnap`** ist der Notausgang: Wer eine einzelne Maschine aus der
Sicherung nehmen will, setzt ihr das Tag — ohne die Konfiguration
anzufassen.
**`pvesnap-recovery`** trägt jede laufende
[Wiederherstellung](../wiederherstellen/index.md). Ohne den Ausschluss
bekämen diese kurzlebigen Maschinen eigene Snapshots — die dann wiederum
verhindern, dass sie sich sauber verwerfen lassen.
---
## Mehrere Regeln kombiniert
```ini
[group:taeglich]
tags = produktion
vmids = 300
exclude_names = *-test
exclude_tags = nosnap
```
Gelesen: *alles mit dem Tag `produktion`* **oder** *VM 300*, **aber nichts**,
was auf `-test` endet oder das Tag `nosnap` trägt.
---
## Gestoppte Gäste
```ini
skip_stopped = yes
```
Übergeht Gäste, die gerade aus sind. Vorgabe ist `no` — auch von einer
gestoppten Maschine wird ein Snapshot angelegt.
Beides ist vertretbar:
| | |
|---|---|
| `skip_stopped = no` | Der Stand ist gesichert, auch wenn die VM länger aus ist. Kostet bei kurzen Intervallen viele identische Snapshots. |
| `skip_stopped = yes` | Nur laufende Maschinen. Passt zu stündlichen Gruppen, spart Platz — aber eine über Wochen abgeschaltete VM bekommt gar nichts mehr. |
!!! note "Der Mischbetrieb"
Eine stündliche Gruppe mit `skip_stopped = yes`, eine monatliche mit
`skip_stopped = no`. Dann bekommt jede Maschine mindestens den monatlichen
Stand, und die laufenden zusätzlich die feine Auflösung.
---
## Nachsehen, was herauskommt
```bash
pvesnap vms
```
```
VMID Name Status Gruppen
100 web01 running stuendlich, taeglich, monatlich
101 db01 running stuendlich, taeglich, monatlich
120 build-test stopped (keine Gruppe)
```
Dasselbe im Editor unter Taste ++v++:
