1 example for virsh
## snapshotting:
# creates a snapshot:
virsh snapshot-create-as "$vmname" "$snapshotname" "$descripton" --atomic
# lists snapshots:
virsh snapshot-list "$vmname" [--tree]
# restores snapshot:
virsh snapshot-revert "$vmname" "$snapshotname"
# deletes a snapshot:
virsh snapshot-delete "$vmname" "$snapshotname"