BITFOX® | LÖSUNGEN | SERVICE | LOGIN | BLOG | KONTAKT

Freitag, 7. August 2020

Wenn das Backup mal verstopft ist....

 ....ja was ist denn schon dabei? 

Da war er wieder, der klassische Moment auf der Console:

Man möchte "mal eben" ein CentOS-System neu aufsetzen und vorsichtshalber die Konfigurationsdateien etc. sichern - man weiß ja nie so recht, ob man doch noch was braucht....

Doch die Backupsoftware sagt "nein" und "Fehler",
für ein dd-image fehlt ein zweiter Speicherort mit Platz
und man weiß grade lokal ohnehin kaum aus dem Stehgreif, was man einpacken sollte.

Na dann.... bist du nicht willig.... dann nehme halt ein wenig Commandline-KungFu...



Bestandsaufnahme...
Was wissen wir? 
  1. Wir wollen alles ab / sichern
  2. Wir wollen aber nichts aus den Pfaden

    /dev
    /run
    /sys
    /tmp/
    /etc/selinux/targeted
    /var/lib/yumdb
    /var/log
    /var/tmp
    /var/cache
    /var/spool
    /var/named/chroot
    /var/lib/yum
    /etc/dbus-
    /usr/share/sbus-

    denn das wird eh alles neu installiert

  3. Wir wollen nur Dateien die neuer als die Installation sind - 
    also neuer als die Datei /root/anaconda-ks.cfg sind, die bei der Installation angelegt wird.
  4. Wir wollen Dateien sichern - keine Verzeichnisse, keine Hard- und keine -Softlinks
  5. Und die Dateien sollen inhaltlich nicht binär - also es sollen Textdateien sein
  6. Und dann hätten wir das ganze gern als ein Bandarchiv,
    gezipped, mit ACLs, Attribute, SELinux-Kontext,
    damit man kein Ärger beim Wiederherstellen hat.
Ja dann!

#!/bin/bash
#
# backup_configs.bash 2020-08-07 Oliver Lenz
# simple script to backup changed configurations after installation.
#
find /  \
   -not \( \( \
     -path /proc \
     -o -path /dev \
     -o -path /run \
     -o -path /sys \
     -o -path /tmp \
     -o -path /etc/selinux/targeted \
     -o -path /var/lib/yum/yumdb \
     -o -path /var/log \
     -o -path /var/tmp \
     -o -path /var/cache \
     -o -path /var/spool \
     -o -path /var/named/chroot \
     -o -path /var/lib/yum \
     -o -path /etc/dbus- \
     -o -path /usr/share/dbus- \
   \) -prune \) \
   -type f \ 
   -newer /root/anaconda-ks.cfg \ 
   -exec grep -Iq . {} \; -print \ 
| tar --selinux --acls --xattrs \
    -cpzvf /root/$( date "+%Y-%m-%d_%H%M_" )configurations.tar.gz \
    -T - 
# to restore without context: tar --no-acls --no-selinux --no-xattrs -C /tmp file.tar.gz

Läuft! Geht doch..... ;-)

Keine Kommentare:

Aktuelles