| |
pve:backupscript [2025/09/20 12:51] – created - external edit 127.0.0.1 | pve:backupscript [2025/09/21 16:44] (current) – kurgan |
---|
Nella nuova versione (che trovate qui sotto) ho aggiunto una funzione che crea un hard link dell'ultimo file creato nel backup su un file con un nome fissato. In altri termini, impostando la variabile "hardlink" a un path (che deve esistere e deve trovarsi sullo stesso disco fisico che contiene i backup) lo script crea un hard link (che non consuma spazio ulteriore) dal file backuppato da PVE (che ha un nome non prevedibile in quanto contiene data e ora) dentro alla directory definita nella variabile "hardlink" con un nome fisso, sovrascrivendo, se c'e`, il file con il medesimo nome. Questo "trucco" permette di eseguire un backup remoto in un secondo tempo in modalità "pull", usando backuppc o rsnapshot o altri sw di backup che fanno storicizzazione e deduplica, potendosi così proteggere meglio dai ransomware o da un attacco al server PVE, usando dei backup storicizzati non accessibili a meno che non venga compromesso anche il server di backup. | Nella nuova versione (che trovate qui sotto) ho aggiunto una funzione che crea un hard link dell'ultimo file creato nel backup su un file con un nome fissato. In altri termini, impostando la variabile "hardlink" a un path (che deve esistere e deve trovarsi sullo stesso disco fisico che contiene i backup) lo script crea un hard link (che non consuma spazio ulteriore) dal file backuppato da PVE (che ha un nome non prevedibile in quanto contiene data e ora) dentro alla directory definita nella variabile "hardlink" con un nome fisso, sovrascrivendo, se c'e`, il file con il medesimo nome. Questo "trucco" permette di eseguire un backup remoto in un secondo tempo in modalità "pull", usando backuppc o rsnapshot o altri sw di backup che fanno storicizzazione e deduplica, potendosi così proteggere meglio dai ransomware o da un attacco al server PVE, usando dei backup storicizzati non accessibili a meno che non venga compromesso anche il server di backup. |
| |
Gennaio 2025: Ho previsto, in questa nuova versione, l'uso di dischi USB crittati (vedere per riferimento [[LinuxDebian[[/DmCrypt]]]]) e anche una funzione per non fare nulla nel caso in cui il target dei backup (locali, intendo) non sia uno specifico. Questa funzione serve per permettermi di avere più di una funzione di backup con target diversi dentro PVE, ed eseguire le copie su USB solo quando i backup sono fatti su uno specifico target. Per esempio, posso voler copiare su usb i backup fatti su un target locale (un hard disk nel server pve) ma non fare copie se faccio i backup su un target remoto (un nas). | Gennaio 2025: Ho previsto, in questa nuova versione, l'uso di dischi USB crittati (vedere per riferimento [[:LinuxDebian:DmCrypt]]) e anche una funzione per non fare nulla nel caso in cui il target dei backup (locali, intendo) non sia uno specifico. Questa funzione serve per permettermi di avere più di una funzione di backup con target diversi dentro PVE, ed eseguire le copie su USB solo quando i backup sono fatti su uno specifico target. Per esempio, posso voler copiare su usb i backup fatti su un target locale (un hard disk nel server pve) ma non fare copie se faccio i backup su un target remoto (un nas). |
| |
**NOTA BENE: Per PVE6 o precedenti usare $TARFILE al posto di $TARGET nello script** | **NOTA BENE: Per PVE6 o precedenti usare $TARFILE al posto di $TARGET nello script** |
| |
| * Prima di tutto, creare lo script e renderlo eseguibile. Io lo chiamo ''/root/pve-remote-backup.sh''<code bash pve-remote-backup.sh> |
* Prima di tutto, creare lo script e renderlo eseguibile. Io lo chiamo ''/root/pve-remote-backup.sh''. | #!/bin/bash |
<code> | |
#!/bin/bash | |
| |
# Impostazioni varie: | # Impostazioni varie: |
* impostare il path per gli hardlink (se volete) oppure impostarlo a "NONE" per disattivare la funzione relativa | * impostare il path per gli hardlink (se volete) oppure impostarlo a "NONE" per disattivare la funzione relativa |
| |
* Per finire, modificare il file ''/etc/vzdump.conf'' inserendo una riga che dice di usare lo script durante i job di backup. In questo modo il nostro script casalingo verrà richiamato dalla procedura di backup interna di PVE. Questa seconda versione dello script non si incasina se viene richiamato due volte in due procedure di backup diverse che eseguono i backup di VM diverse, in quanto ogni invocazione dello script va a modificare SOLO i files relativi alle VM che vengono incluse nel backup in esecuzione. In altri termini, se ho 4 VM e ne backuppo due alla mattina e due al pomeriggio, lo script non va ad archiviare sul disco di backup esterno le VM che non sono parte del backup in corso. Tuttavia, se decido di backuppare la stess VM tre volte in un giorno, allora occorre rivedere le logiche di archiviazione "daily" e "weekly" perchè queste logiche sono pensate per UN SOLO BACKUP al giorno di ogni VM. | * Per finire, modificare il file ''/etc/vzdump.conf'' inserendo una riga che dice di usare lo script durante i job di backup. In questo modo il nostro script casalingo verrà richiamato dalla procedura di backup interna di PVE. Questa seconda versione dello script non si incasina se viene richiamato due volte in due procedure di backup diverse che eseguono i backup di VM diverse, in quanto ogni invocazione dello script va a modificare SOLO i files relativi alle VM che vengono incluse nel backup in esecuzione. In altri termini, se ho 4 VM e ne backuppo due alla mattina e due al pomeriggio, lo script non va ad archiviare sul disco di backup esterno le VM che non sono parte del backup in corso. Tuttavia, se decido di backuppare la stess VM tre volte in un giorno, allora occorre rivedere le logiche di archiviazione "daily" e "weekly" perchè queste logiche sono pensate per UN SOLO BACKUP al giorno di ogni VM.<code - vzdump.conf> |
<code> | |
script: /root/pve-remote-backup.sh | script: /root/pve-remote-backup.sh |
</code> | </code> |
| |
| |