python GUI applicatie backups maken met fsarchiver
GUI applicatie backups, consistent backups maken, achiveerinfo en restore met fsarchiver
geschreven met programmeertaal python met gebruik van Gtk 3.0
nodig :
- installeer het fsarchiver pakket :
- sudo apt install fsarchiver
- installeer LVM
- sudo apt install lvm2
- zet al je fysische partities swap, boot, home, root , data op één volume en zet ze op logische volumes binnen één volume groep
- maak op zijn minst 6 G vrij voor de snapshot
Deze applicatie selecteer een device (fysische, logische partitie, LVM partitie) en maakt backups dmv de fsarchiver utility
Er is ook mogelijk een restore te doen met fsarchiver en info te vragen ivm een gearchiveerd bestand.
beginscherm :
Eerste gedeelte
Deze applicatie kan gebruikt worden om een device te backuppen met fsarchiver.Dit kan gedaan worden met invullen van eerste gedeelte zie gekleurde rechthoek
Het kan ook gebruikt worden om een restore te doen van een gearchiveerd bestand naar een device !
Hiervoor wordt het tweede gedeelte gebruikt.
Je kan ook informatie ophalen hoe een gearchiveerd bestand gearchiveerd is met de fsarchiver utility.
bijgeleverde bestanden
- myarchive.py : python source GUI
- myarchive2.py : python source opgeroepen door bash shell lstcommands.sh
- myarchive_snapshot.py : python source GUI
- hierbij kan men LVM boot, root, home en data logische partities backuppen
- als men knop Snapshot : aankruis kan men consistente backups maken ; hierbij wordt een snapshot van het bestandensysteem genomen
en daarna wordt de backup genomen ; ondertussen kan mijn wijzigingen doen op dit bestandensysteem !
- Enkel mogelijk met LVM partities !
Backup nemen
hier een voorbeeldhierboven zie je hoe een backup kan genomen worden :
- een device wordt geselecteerd uit de Combobox van "Bestandsystemen te archiveren" : hie mijn LVS boot device
- de Foldernaam demo werd geselecteerd in de tweede comboboxt
- een compressie nummer werd geselecteerd , hier nr 6 (gelieve niet de hoogste compressie 9 te nemen anders werkt het fsarchiver commando heel wat trager !)
- aantal cpus/threads : afhankelijk van het aantal cpu's van je computer, hier werd 4 geselecteerd
- "splitsen in aantal blokken van 1 G" , hier werd 1 geselecteerd dwz dat de archivering zal gesplitst worden in blokken van 1 G
- de knop 'Uitvoeren" werd hierbij geselecteerd om de backup te starten .
hierboven zie je dat de backup beëindigd is : zie status "Start 18:14:04 " (= gestart om 18u14min04sec ) en het duurde 12 seconden. "Done" betekent dat de backup beëindigd is"
in terminal zie het commando dat uitgevoerd werd en wat meer info:
- eerst werd het commando = 'sudo lvcreate - L 6G -s -n mysnap /dev/mapper/mydell-boot' uitgevoerd
(dit kan enkel succesvol uitgevoerd worden als er nog 6G vrij is op je Volumegroep hier mydell)
- daarna wordt het commando = 'sudo fsarchiver -A -z 6 -s 1000 4 savefs /home/ulefr01/demo/backup_boot-201711051814.fsa /dev/mapper/mydell-mysnap'
(dit doet de eigenlijke backup)
- daarna de snapshot vrijgegegeven
het commando = 'sudo lvremove -vf /dev/mapper/mydell-boot'
in de terminal zie je de creatie van let logische volume "mysnap" ; hier werd per default 6G gebruikt
Reducing COW size 6,00 GiB down to maximum usable size 1,01 GiB.
Logical volume "mysnap" created.
Vervolgens zie je fsarchiver informatie ivm met de backup :
Archive will be split into volumes of 1048576000 bytes (1000.00 MB)
Statistics for filesystem 0
- files successfully processed:....regfiles=321, directories=6, symlinks=0, hardlinks=0, specials=0
- files with errors:...............regfiles=0, directories=0, symlinks=0, hardlinks=0, specials=0
De status line = 'Start 18:14:04 Run time: 12 seconden Done !'
De backup is gestart om 18:14:04 gestart en heeft 12 seconden geduurd.
'Done' betekent dat de backup beëindigd is.
Tweede gedeelte is om een restore te doen
in het eerste veld moet de naam van een backup bestand ingevuld worden :hierbij werd bovenstaande backup genomen als input
daarna wordt informatie van die backup getoond :
om een gearchiveerd bestand terug te zetten moet ook de laatste twee velden ingevuld worden :
- positie in gearchiveerd bestand normaal 0
- device selecteren naar waar de restore gebeurd.
Druk op 'Uitvoeren' om de eigenlijke restore te doen
hierboven zie je dat de restore gestart is
Hierboven zie je dat de restore beëindigd is , status lijn toon Done , restore heeft 4 seconden geduurd.
Links op de terminal zie je statistieken van de restore
Hier een demo
in terminal doe ik hetvolgende :- eerst maak ik een folder = demo
ulefr01@:[~]: mkdir demo
ulefr01@:[~]: ls demo -dl
drwxrwxr-x 2 ulefr01 ulefr01 4096 nov 5 18:06 demo
ulefr01@:[~]: ls demo -dl
drwxrwxr-x 2 ulefr01 ulefr01 4096 nov 5 18:06 demo
- ga binnen
ulefr01@:[~]: cd demo
ulefr01@:[~/demo]: ls * -la
ulefr01@:[~/demo]: ls * -la
niks gevonden daar het nog leeg is
ls: kan geen toegang krijgen tot '*': Bestand of map bestaat niet
ls: kan geen toegang krijgen tot '*': Bestand of map bestaat niet
ulefr01@:[~/demo]: losetup -l
nog niks
- hier zie je wat moet gebackupd worden , ik wil mijn LVS boot device backuppen
ulefr01@:[~/demo]: ls /boot/* -la -rw-r--r-- 1 root root 1408605 mei 16 05:53 /boot/abi-4.8.0-53-generic -rw-r--r-- 1 root root 199564 mei 16 05:53 /boot/config-4.8.0-53-generic -rw-r--r-- 1 root root 43358826 okt 24 22:52 /boot/initrd.img-4.8.0-53-generic -rw-r--r-- 1 root root 182704 jan 28 2016 /boot/memtest86+.bin -rw-r--r-- 1 root root 184380 jan 28 2016 /boot/memtest86+.elf -rw-r--r-- 1 root root 184840 jan 28 2016 /boot/memtest86+_multiboot.bin -rw------- 1 root root 4066743 mei 16 05:53 /boot/System.map-4.8.0-53-generic -rw-r--r-- 1 root root 7308416 jun 28 14:29 /boot/vmlinuz-4.8.0-53-generic /boot/grub: totaal 2392 drwxr-xr-x 5 root root 4096 okt 24 23:37 . drwxr-xr-x 4 root root 4096 okt 24 22:52 .. drwxr-xr-x 2 root root 4096 okt 22 22:32 fonts -rw-r--r-- 1 root root 712 jun 28 14:17 gfxblacklist.txt -r--r--r-- 1 root root 9345 okt 24 23:37 grub.cfg -rw-r--r-- 1 root root 1024 nov 5 16:56 grubenv drwxr-xr-x 2 root root 12288 okt 24 23:38 i386-pc drwxr-xr-x 2 root root 4096 okt 24 23:38 locale -rw-r--r-- 1 root root 2398585 jun 28 14:17 unicode.pf2 ls: kan map '/boot/lost+found' niet openen: Toegang geweigerd
- ik probeer nu de restore te doen op een bestand = boot_file
ulefr01@:[~/demo]: dd if=/dev/zero of=boot_file bs=1G count=1 1+0 records gelezen 1+0 records geschreven 1073741824 bytes (1,1 GB, 1,0 GiB) copied, 5,26777 s, 204 MB/s
- maak een ext4 bestandensysteem
ulefr01@:[~/demo]: sudo mkfs.ext4 boot_file [sudo] wachtwoord voor ulefr01: mke2fs 1.42.13 (17-May-2015) Verwerpen van blokken: voltooid Aanmaken van bestandssysteem met 262144 blokken (van 4K) en 65536 inodes. Bestandssysteem-UUID: 35bcbe8b-d3d7-42b9-9da5-76582b630d71 Superblokreservekopieën zijn opgeslagen in blokken: 32768, 98304, 163840, 229376 Reserveren van groepstabellen: voltooid Schrijven van inodetabellen: voltooid Aanmaken van journal (8192 blokken): voltooid Schrijven van superblokken en bestandssysteem-metagegevens: voltooid
- gebruik een loop device
ulefr01@:[~/demo]: sudo losetup /dev/loop0 boot_file
- maak een folder tmp
ulefr01@:[~/demo]: mkdir tmp
- mount het bestandensysteem
ulefr01@:[~/demo]: sudo mount boot_file tmp
- hier zie je dat er nog niks op staat :
ulefr01@:[~/demo]: ls tmp/* -la ls: kan map 'tmp/lost+found' niet openen: Toegang geweigerd ulefr01@:[~/demo]: ls tmp/* -dla drwx------ 2 root root 16384 nov 5 18:09 tmp/lost+found
- nu doe ik de umount anders kan ik niet de restore doen :
ulefr01@:[~/demo]: sudo umount tmp
- de python applicatie wordt gestart , dit om de restore naar dit boot_file te kunnen doen
ulefr01@:[~/demo]: python /data/py/myarchive_snapshot.py
- nu zie je terug het beginscherm :
- het tweede gedeelte wordt nu ingevuld :
klik op bestandensysteem van 'archiveer bestandsnaam' : zie rechthoek
nu kan je een folder en bestand selecteren van je gemaakte backup
hier : backup_boot-201711051814.fsa
selecteer : 0
terug zetten opo het loop device : /dev/loop0
nu kan je een folder en bestand selecteren van je gemaakte backup
hier : backup_boot-201711051814.fsa
selecteer : 0
terug zetten opo het loop device : /dev/loop0
Druk op 'Uitvoeren om de restore te doen !
- wacht tot je 'Done' ziet op de statuslijn
u ziet nu op de terminal
('my_cmd = ', 'sudo lvcreate -L 6G -s -n mysnap /dev/mapper/mydell-boot && sudo fsarchiver -A -z 6 -s 1000 -j 4 savefs /home/ulefr01/demo/backup_boot-201711051814.fsa /dev/mapper/mydell-mysnap && sudo lvremove -vf /dev/mapper/mydell-boot') Reducing COW size 6,00 GiB down to maximum usable size 1,01 GiB. Logical volume "mysnap" created. Archive will be split into volumes of 1048576000 bytes (1000.00 MB) Statistics for filesystem 0 * files successfully processed:....regfiles=321, directories=6, symlinks=0, hardlinks=0, specials=0 * files with errors:...............regfiles=0, directories=0, symlinks=0, hardlinks=0, specials=0 Using logical volume(s) on command line. Archiving volume group "mydell" metadata (seqno 16). Removing snapshot mysnap Loading mydell-boot table (253:1) Loading mydell-mysnap table (253:7) mydell/snapshot0 already not monitored. Suspending mydell-boot (253:1) with device flush Suspending mydell-mysnap (253:7) with device flush Suspending mydell-boot-real (253:5) with device flush Suspending mydell-mysnap-cow (253:6) with device flush activation/volume_list configuration setting not defined: Checking only host tags for mydell/mysnap Resuming mydell-mysnap-cow (253:6) Resuming mydell-boot-real (253:5) Resuming mydell-mysnap (253:7) Removing mydell-mysnap-cow (253:6) Resuming mydell-boot (253:1) Removing mydell-boot-real (253:5) Removing mydell-mysnap (253:7) Releasing logical volume "mysnap" Creating volume group backup "/etc/lvm/backup/mydell" (seqno 18). Logical volume "mysnap" successfully removed Device dm-1 (253:1) appears to be mounted on /boot. Logical volume mydell/boot contains a filesystem in use. fsarchiver commando : Start: 18:14:04 Run time: 12 seconden Done !
Op de GUI ziet ge op de status lijn : ' Start 18;19:06 Run time : 4 seconden Done !'
Dit betekent dat de restore gedaan is.
In terminal zie je ook informatie en statistieken
Dit betekent dat de restore gedaan is.
In terminal zie je ook informatie en statistieken
- Nu gaan we het bestand mounten :
ulefr01@:[~/demo]: sudo mount boot_file tmp
- nu kijken wat erop staat :
ulefr01@:[~/demo]: sudo ls tmp/* -dla -rw-r--r-- 1 root root 1408605 mei 16 05:53 tmp/abi-4.8.0-53-generic -rw-r--r-- 1 root root 199564 mei 16 05:53 tmp/config-4.8.0-53-generic drwxr-xr-x 5 root root 4096 okt 24 23:37 tmp/grub -rw-r--r-- 1 root root 43358826 okt 24 22:52 tmp/initrd.img-4.8.0-53-generic drwx------ 2 root root 16384 okt 22 22:25 tmp/lost+found -rw-r--r-- 1 root root 182704 jan 28 2016 tmp/memtest86+.bin -rw-r--r-- 1 root root 184380 jan 28 2016 tmp/memtest86+.elf -rw-r--r-- 1 root root 184840 jan 28 2016 tmp/memtest86+_multiboot.bin -rw------- 1 root root 4066743 mei 16 05:53 tmp/System.map-4.8.0-53-generic -rw-r--r-- 1 root root 7308416 jun 28 14:29 tmp/vmlinuz-4.8.0-53-generic ulefr01@:[~/demo]: sudo ls tmp/grub/* -dla drwxr-xr-x 2 root root 4096 okt 22 22:32 tmp/grub/fonts -rw-r--r-- 1 root root 712 jun 28 14:17 tmp/grub/gfxblacklist.txt -r--r--r-- 1 root root 9345 okt 24 23:37 tmp/grub/grub.cfg -rw-r--r-- 1 root root 1024 nov 5 16:56 tmp/grub/grubenv drwxr-xr-x 2 root root 12288 okt 24 23:38 tmp/grub/i386-pc drwxr-xr-x 2 root root 4096 okt 24 23:38 tmp/grub/locale -rw-r--r-- 1 root root 2398585 jun 28 14:17 tmp/grub/unicode.pf2
- umount het bestandensysteem :
ulefr01@:[~/demo]: sudo umount tmp
- loop device is nog actief :
ulefr01@:[~/demo]: losetup -l NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE /dev/loop0 0 0 0 0 /home/ulefr01/demo/boot_file
- loop device wegdoen :
ulefr01@:[~/demo]: sudo losetup -d /dev/loop0
- nu kan je zien dat het loop device weg is :
ulefr01@:[~/demo]: losetup -l
er wordt niks vermeld
er wordt niks vermeld
- opkuis :
ulefr01@:[~/demo]: ls
backup_boot-201711051814.fsa boot_file tmp ulefr01@:[~/demo]: rm backup_boot-201711051814.fsa rm: normaal bestand 'backup_boot-201711051814.fsa' (schrijfbeveiligd) verwijderen? j ulefr01@:[~/demo]: rm boot_file rm: normaal bestand 'boot_file' verwijderen? j ulefr01@:[~/demo]: rmdir tmp ulefr01@:[~/demo]: cd .. ulefr01@:[~]: rmdir demo ulefr01@:[~]:
Bijgeleverd : myarchive_snapshot.py
zie python_bestand_myarchive_snapshot.py
Hier bijgeleverd de uitvoering van een backup gemaakt op 9 november 2017 : zie Terminal output van een backup gemaakt met de GUI python applicatie
Geen opmerkingen:
Een reactie posten