Difference between revisions of "Automating taking and deleting of Snapshots"
m |
|||
(21 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 5: | Line 5: | ||
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. | 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 === | === Install the tool on Proxmox VE === | ||
Line 10: | Line 11: | ||
# wget https://github.com/Corsinvest/cv4pve-autosnap/releases/download/v1.15.2/cv4pve-autosnap-linux-x64.zip | # wget https://github.com/Corsinvest/cv4pve-autosnap/releases/download/v1.15.2/cv4pve-autosnap-linux-x64.zip | ||
</pre> | </pre> | ||
=== Install unzip package === | |||
<pre> | |||
# apt install unzip | |||
</pre> | |||
=== unzip the package === | |||
<pre> | |||
# unzip cv4pve-autosnap-linux-x64.zip | |||
</pre> | |||
=== give execute permission === | |||
<pre> | |||
# chmod +x cv4pve-autosnap | |||
</pre> | |||
=== move it to sbin folder === | |||
<pre> | |||
# mv cv4pve-autosnap /usr/sbin/ | |||
</pre> | |||
=== To verify that the commands are working, we can run this command. It will display all available options. === | |||
<pre> | |||
# cv4pve-autosnap --help | |||
</pre> | |||
== VIRTUAL MACHINE == | |||
=== This command takes the backup of VM === | |||
<pre> | |||
# cv4pve-autosnap --host=172.30.7.100 --username=root@pam --password 'file:/root/password' --vmid=101 snap --label=daily --keep=2 | |||
</pre> | |||
=== 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 === | |||
<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