Migration Live System in LXC Container

warum rsync besser ist als eine Installations-Routine

26. November 2020

Rsync ist fantastisch schnell und unvergleichlich!

Ein Setup von ISO oder sonstigem Image gibt Defaults vor, die sehr oft nicht erwünscht sind und sehr oft aus purer Gewohnheit angenommen werden, um sie nach Fertigstellung des Installations-Assistenten wieder auf jene Einstellungen zu bringen, die tatsächlich benötigt werden.

Dieses Skript ist sehr einfach gehalten und soll zeigen, dass es in 3 Schritten möglich ist, ein komplettes Linux System in einen LXC-Container zu verfrachten.

  1. Rsync ohne Mapping
  2. Mapping aus dem Klon in Variablen auslesen
  3. Rsync nochmal mit Mapping

#!/bin/bash

HOSTNAME=sockbook

TARGETPATH=/var/lib/libvirt/images/lxc/

rsync -avxPz \

--del \

--numeric-ids \

${HOSTNAME}:/etc ${TARGETPATH}${HOSTNAME}/

USERMAP=$(for f in $(cut ${HOSTNAME}/etc/passwd -d: -f 3); do echo -n $f:$(($f + 100000)),; done)

USERMAP=${USERMAP%,}

echo ${USERMAP}

GROUPMAP=$(for f in $(cut ${HOSTNAME}/etc/group -d: -f 3); do echo -n $f:$(($f + 100000)),; done)

GROUPMAP=${GROUPMAP%,}

rsync -avxPz \

--del \

--numeric-ids \

--exclude=var/log/journal/7b8ace6c4abc4fdfaeb7c437abe21a4c \

--usermap=${USERMAP} \

--groupmap=${GROUPMAP} \

${HOSTNAME}:/ ${TARGETPATH}${HOSTNAME}/

Tags

Return

no analytics