Skript inkrementálně zálohující HDD ihned po připojení

anonym

Jak napsat skript, ktery pobezi na pozadi a po pripojeni disku s nazvem "Hello Kitty" spusti automaticky kompletni inkrementalni zalohu disku? A myslim tim zalohu, ze ktere je mozne disk napr. z life linuxove distribuce i kompletne obnovit, vc. boot loaderu.

Dekuji
« Poslední změna: 02. 09. 2018, 19:38:47 od Petr Krčmář »


Trenky dolu

Re:Skript inkrementalne zalohujici HDD ihned po pripojeni ext HDD
« Odpověď #1 kdy: 01. 09. 2018, 15:40:25 »
Nic na pozadi nepotrebujes, staci udev pravidlo neco na styl nize (uz to davno nepouzivam, pac mam NASy ...), ale tak zbytek si snad zvladnes dohledat

Kód: [Vybrat]
cat /etc/udev/rules.d/10-local.rules

# USB SAMSUNG 1.5TB GB
SUBSYSTEM=="block", KERNEL=="sd?",      ATTRS{serial}=="533159364A39305343303334", NAME="usb/usb"
SUBSYSTEM=="block", KERNEL=="sd?[0-9]", ATTRS{serial}=="533159364A39305343303334", NAME="usb/usb%n", ACTION=="add", RUN+="/bin/pripoj.usb.sh".
SUBSYSTEM=="block", KERNEL=="sd?[0-9]", ATTRS{serial}=="533159364A39305343303334", NAME="usb/usb%n", ACTION=="remove", RUN+="/bin/odpoj.usb.sh".

k3dAR

  • *****
  • 3 193
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Skript inkrementalne zalohujici HDD ihned po pripojeni ext HDD
« Odpověď #2 kdy: 01. 09. 2018, 19:39:05 »
zajisteni ihned zajistis pres to udev pravidlo...

zajisteni rozdilovosti souboru pres rdiff-backup (otazka jak to zacne byt casem narocne, podle toho jestli zalujes jen system, nebo i velke data, protoze to vzdy pocita diff), muzes se podivat i na rsnapshot, ten nedela diff takze se nemuze spomalovat, ale zas dela zalohy celejch souboru takze to casem muze nasobne narust na velikosti (oproti rdiff-backup)...

zajisteni obnoveni bootloderu, zalezi jak to chces resit, jestli i vcetne rozdeleni disku, tak zalohovat partition table pres sfdisk/sgdisk, u bootloader u MBR/MSDOS rozdeleni zalohovat MBR, u EFI zalohovat EFI oddil u LegacyGPT navic i BIOS_GRUB oddil...
pri obnoveni pak ve skriptu musis rozdelit disk (pres parted) nebo obnovit zaloho rozdeleni pres sfdisk/sgdisk, pomoci dd obnovit mbr u mbr, nebo EFI oddil(y), nasledne nakopirujes pres rsync data z posledni zalohy... a bud nastavis UUID pro oddily jako byli, nebo je v cilovem systemu v /etc/fstab zmenis a pregenerujes initramdisk a grub
bootlodaer pripadne muzes obnovovat tak ze ho proste s toho Live (pozor neni to LifeCD ;-) normalne znovu nainstalovat...

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re:Skript inkrementálně zálohující HDD ihned po připojení
« Odpověď #3 kdy: 15. 09. 2018, 11:54:25 »
Ahoj

Zrovna nedavno jsem resil to stejne. Prijdu ke komplu, pichnu do nej USB HDD a automaticky se provede zalohovani. Udelal jsem to obdobne jak ti radi "Trenky Dolu", ale misto patlani se s kompletne vlastnim skriptem pouzivam zalohovaci system Borg https://borgbackup.readthedocs.io/en/stable/ .

Takova mala rada: nezapomen, ze pokud neco spousti udev, defaultne to jede s pravy roota. Muze to byt neprijemne prekvapeni, jsi-li zvykli zalohovat jako user. Zrovna resim jak to zaridit, aby se zalohovani spustilo uzivateli, ktery je momentalne prihlasen na aktivni konzoli...

Neviditelný

Re:Skript inkrementalne zalohujici HDD ihned po pripojeni ext HDD
« Odpověď #4 kdy: 15. 09. 2018, 12:32:51 »
Nic na pozadi nepotrebujes, staci udev pravidlo neco na styl nize (uz to davno nepouzivam, pac mam NASy ...), ale tak zbytek si snad zvladnes dohledat

Kód: [Vybrat]
cat /etc/udev/rules.d/10-local.rules

# USB SAMSUNG 1.5TB GB
SUBSYSTEM=="block", KERNEL=="sd?",      ATTRS{serial}=="533159364A39305343303334", NAME="usb/usb"
SUBSYSTEM=="block", KERNEL=="sd?[0-9]", ATTRS{serial}=="533159364A39305343303334", NAME="usb/usb%n", ACTION=="add", RUN+="/bin/pripoj.usb.sh".
SUBSYSTEM=="block", KERNEL=="sd?[0-9]", ATTRS{serial}=="533159364A39305343303334", NAME="usb/usb%n", ACTION=="remove", RUN+="/bin/odpoj.usb.sh".

Na tohle bacha, spouštět udevem skripty, které trvají delší dobu je dost problém, protože takový skript zablokuje celý udev. Nějakou inspiraci, jak to vyřešit hledej třeba zde.