Hauptsächlich zu meiner Erinnerung...
Ich schreib das hier mal auf, damit ich beim nächsten Mal sofort weiß, wie man das macht... Hauptgrund für die Art und Weise, die ich hier vorstellen möchte war, dass ich einen meiner Server entlasten wollte, dessen Massenspeicherfüllstand sich gefährlich auf 90% zu bewegte. Aus diesem Grund war auch ein einfaches Einpacken per tar nicht möglich - das entstehende Archiv hätte nicht mehr auf den Massenspeicher gepasst.
Also entschied ich mich für die direkte Variante: Transparentes Verpacken mittels tar und senden des Archivstreams per ssh zum Zielrechner, wo das Archiv transparent aus der Standardeingabe sofort wieder entpackt wird. Das Kommando dafür lautet:
sudo tar -C ~/.local/share/lxc/ -cpf - <container_name> | \
pv | \
ssh -Y <remote_user>@<target_host> \
"SUDO_ASKPASS=<path_to>/ssh-askpass sudo -A tar --same-owner -C /home/<remote_user>/.local/share/lxc -xf -"
Dabei ist <container_name> der Name des Containers, der zu migrieren ist (Vor der Migration ist dieser natürlich zunächst mittels lxc-stop -n <container_name> anzuhalten). <target_host> ist der Name des Rechners, auf den der Container migriert werden soll, <remote_user> ist der Nutzername des Nutzers, der den Container nach der Migration ausführen soll.
Nun zu den einzelnen Bestandteilen des Kommandos:
sudo tar -C ~/.local/share/lxc/ - sudo muss hier verwendet werden, da nicht alle Dateien in einem Container dem aktuellen Nutzer gehören, aber alle kopiert werden müssen. die Option -C legt das Verzeichnis fest, in dem tar arbeiten soll.
-cpf - - -p gibt hier an, dass die Permissions der Dateien und Verzeichnisse mit im Archiv übertragen werden sollen, -f - spezifiziert, dass das resultierende Archiv auf der Standardausgabe ausgegeben werden soll.
pv - realisiert eine rudimentäre Fortschrittsanzeige während des Prozesses
ssh -Y
SUDO_ASKPASS=
tar --same-owner -C /home/
-xf - - schließlich gibt an, dass ein auf der Standardeingabe verfügbare Archiv entpackt werden soll.
CI/CD mit shellcheck
13.10.2019
Ich habe mich entschlossen, in meinen diversen Shell-Projekten shellcheck als Mittel zur Qualitätssicherung einzusetzen.
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Git(lab|hub) Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In meinem $dayjob kam neulich die Frage auf, ob es möglich wäre, die aktuelle Softwareinstallation eines Linux-Systems als Software Bill of Materials (SBOM) zu exportieren.
Weiterlesen...Ich habe - motiviert durch meine Experimente zur Visualisierung von Paketabhängigkeiten in Linux-Installationen als interaktive Graphen - versucht, relationale Datenmodelle in ähnlicher Form zu visualisieren und dazu zwei Plugins für die sQLshell geschrieben.
Weiterlesen...Die Royal Institution hat in ihren Schätzen gegraben und die Christmas Lectures von Carl Sagan auf Youtube nochmals veröffentlicht. Meiner Ansicht nach unbedingt lohnenswert für alle, die Englisch verstehen!
Weiterlesen...Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.