Difference between revisions of "Automating taking and deleting of Snapshots"

From Notes_Wiki
m
 
(17 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[Main Page | Home]] > [[Proxmox]] > [[Automating taking and deleting of Snapshots]]
[[Main Page | Home]] > [[Debian]] > [[Proxmox virtual environment]] > [[Automating taking and deleting of Snapshots]]


We can automate taking and deleting of Snapshots using '''cv4pve-autosnap''' tool.
We can automate taking and deleting of Snapshots using '''cv4pve-autosnap''' tool.
Line 53: Line 53:


'''The password is required the first time, and it can be either pasted or typed. It is then stored in the file.'''
'''The password is required the first time, and it can be either pasted or typed. It is then stored in the file.'''
* When the above command run successfully, it Confirms that the snapshot command ran without error and a snapshot was created for the VM.
* The snapshot is visible in the Proxmox web interface under the VM's "'''Snapshots'''" tab.
* We can create A second snapshot using the same command.
* The GUI now displays both the first and second snapshots for the VM.
* After taking a third snapshot, the oldest snapshot was automatically deleted as per the '''--keep=2''' rule.
* Confirms the retention policy is working correctly: keeping only the two most recent snapshots.
=== Check the status ===
<pre>
# cv4pve-autosnap --host=172.30.7.100 --username=root@pam --password 'file:/root/password' --vmid=101 status
</pre>
== CONTAINER ==
'''The same process applies to containers; we just need to provide the container ID.'''
<pre>
# cv4pve-autosnap --host=172.30.7.100 --username=root@pam --password 'file:/root/password' --vmid=100 snap --label=daily –keep=2
</pre>
* Take a snapshot for the container.
* The container's snapshot is visible in the Proxmox GUI.
* Taken another snapshot for the container.
* Both snapshots now show up in the container's "'''Snapshots'''" tab.
* Create a third snapshot triggers automatic deletion of the oldest one, maintaining only two.
* Validates the retention rule worked for container snapshots as well.
== AUTOMATION USING CRONTAB ==
We can automate this process using crontab. Below is the example:
<pre>
0 12 * * * /usr/sbin/cv4pve-autosnap --host=172.30.7.100 --username=root@pam --password 'file:/root/password' --vmid=100 snap --label=daily --keep=2
</pre>
== Non Root User ==
'''If the root user of Proxmox has TOTP authentication, we can use API token instead of user.'''
=== Create an API token ===
* Go to Datacenter > Permissions > API Token > Add
* Give the Token ID
* uncheck Privilege Separation
* Note the Token ID and Secret details ('''this will only show one Time''')
=== Command to take snapshot using API token ===
<pre>
# cv4pve-autosnap --host=172.30.7.100 --api-token 'root@pam!snap=056d158b-06dc-4774-9156-56a1efb1e9d7' --vmid=101 snap --label=daily --keep=2
</pre>
* Test is manually
* Take a snapshot
* It will appear in the GUI
=== To automate the process, add the following entry to the crontab ===
<pre>
0 2 * * * /usr/sbin/cv4pve-autosnap --host=172.30.7.100 --api-token 'root@pam!snap=056d158b-06dc-4774-9156-56a1efb1e9d7' --vmid=101 snap --label=daily --keep=2>
</pre>
Reference:
https://github.com/Corsinvest/cv4pve-autosnap
[[Main Page | Home]] > [[Debian]] > [[Proxmox virtual environment]] > [[Automating taking and deleting of Snapshots]]

Latest revision as of 07:30, 5 May 2025

Home > Debian > Proxmox virtual environment > Automating taking and deleting of Snapshots

We can automate taking and deleting of Snapshots using cv4pve-autosnap tool.

cv4pve-autosnap is a lightweight automation tool designed for Proxmox VE environments to create and manage LVM-Thin and ZFS volume snapshots. It helps administrators implement automated, scheduled snapshot backups of virtual machines (VMs) and containers (CTs), offering a simple but effective mechanism for data protection and rollback.

Installation

Install the tool on Proxmox VE

# wget https://github.com/Corsinvest/cv4pve-autosnap/releases/download/v1.15.2/cv4pve-autosnap-linux-x64.zip

Install unzip package

# apt install unzip

unzip the package

# unzip cv4pve-autosnap-linux-x64.zip

give execute permission

# chmod +x cv4pve-autosnap

move it to sbin folder

# mv cv4pve-autosnap /usr/sbin/

To verify that the commands are working, we can run this command. It will display all available options.

# cv4pve-autosnap --help


VIRTUAL MACHINE

This command takes the backup of VM

# cv4pve-autosnap --host=172.30.7.100 --username=root@pam --password 'file:/root/password' --vmid=101 snap --label=daily --keep=2

Parameters used in the command

  • snap: will take snapshot one time
  • -- label: assigns a label or name to the snapshot (example: daily, monthly)
  • --keep: Specifies the number of snapshots to retain for the given label.
  • --vmid: id of the VM

The password is required the first time, and it can be either pasted or typed. It is then stored in the file.

  • When the above command run successfully, it Confirms that the snapshot command ran without error and a snapshot was created for the VM.
  • The snapshot is visible in the Proxmox web interface under the VM's "Snapshots" tab.
  • We can create A second snapshot using the same command.
  • The GUI now displays both the first and second snapshots for the VM.
  • After taking a third snapshot, the oldest snapshot was automatically deleted as per the --keep=2 rule.
  • Confirms the retention policy is working correctly: keeping only the two most recent snapshots.

Check the status

# cv4pve-autosnap --host=172.30.7.100 --username=root@pam --password 'file:/root/password' --vmid=101 status


CONTAINER

The same process applies to containers; we just need to provide the container ID.

# cv4pve-autosnap --host=172.30.7.100 --username=root@pam --password 'file:/root/password' --vmid=100 snap --label=daily –keep=2
  • Take a snapshot for the container.
  • The container's snapshot is visible in the Proxmox GUI.
  • Taken another snapshot for the container.
  • Both snapshots now show up in the container's "Snapshots" tab.
  • Create a third snapshot triggers automatic deletion of the oldest one, maintaining only two.
  • Validates the retention rule worked for container snapshots as well.

AUTOMATION USING CRONTAB

We can automate this process using crontab. Below is the example:

0 12 * * * /usr/sbin/cv4pve-autosnap --host=172.30.7.100 --username=root@pam --password 'file:/root/password' --vmid=100 snap --label=daily --keep=2

Non Root User

If the root user of Proxmox has TOTP authentication, we can use API token instead of user.

Create an API token

  • Go to Datacenter > Permissions > API Token > Add
  • Give the Token ID
  • uncheck Privilege Separation
  • Note the Token ID and Secret details (this will only show one Time)

Command to take snapshot using API token

# cv4pve-autosnap --host=172.30.7.100 --api-token 'root@pam!snap=056d158b-06dc-4774-9156-56a1efb1e9d7' --vmid=101 snap --label=daily --keep=2
  • Test is manually
  • Take a snapshot
  • It will appear in the GUI

To automate the process, add the following entry to the crontab

0 2 * * * /usr/sbin/cv4pve-autosnap --host=172.30.7.100 --api-token 'root@pam!snap=056d158b-06dc-4774-9156-56a1efb1e9d7' --vmid=101 snap --label=daily --keep=2>

Reference: https://github.com/Corsinvest/cv4pve-autosnap



Home > Debian > Proxmox virtual environment > Automating taking and deleting of Snapshots