BEZEICHNUNG
machinectl - Steuert den Systemd-MaschinenverwalterÜBERSICHT
machinectl
[OPTIONEN…] {BEFEHL} [NAME…]
BESCHREIBUNG
machinectl kann zur Untersuchung und Steuerung des Zustand des Registrierungsverwalters systemd-machined.service(8) von systemd(1) für virtuelle Maschinen und Container verwandt werden. machinectl kann zur Ausführung von Aktionen auf Maschinen und Abbildern verwandt werden. In diesem Zusammenhang werden Maschinen als folgende laufende Instanzen betrachtet:•Virtuelle Maschinen (VMs), die
Hardware virtualisieren, um vollständige Betriebssysteminstanzen
(einschließlich ihrer Kernel) in einer virtualisierten Umgebung
oberhalb des Wirtsbetriebssystems auszuführen.
•Container, die Hardware und
Betriebssystemkernel mit dem Wirtsbetriebssystem gemeinsam benutzen, um eine
Betriebssystem-Benutzerinstanz oberhalb des Wirtsbetriebssystems
auszuführen.
•Das Wirtsystem selbst.
Maschinen werden durch Namen identifiziert, die den gleichen Regeln wie UNIX-
und DNS-Rechnernamen folgen. Details nachfolgend.
Maschinen werden von Platte oder Systemabbildern instanziiert, die
häufig, aber nicht notwendigerweise, die gleichen Namen wie Maschinen,
von denen sie ausgeführt werden, tragen. In diesem Zusammenhang
können Abbilder Folgendes sein:
•Verzeichnisbäume, die ein
Betriebssystem enthalten, einschließlich der Verzeichnisse auf oberster
Ebene wie /usr/, /etc/ usw.
•Btrfs-Teildatenträger, die
Betriebssystembäume, ähnlich zu regulären
Verzeichnisbäumen enthalten.
•Binäre »rohe«
Plattenabbilddateien, die MBR- oder GPT-Partitionstabellen und
Linux-Dateisysteme enthalten.
•Ähnlicherweise
Blockgeräte, die MBR- oder GPT-Partitionstabellen und Dateisysteme
enthalten.
•Der Dateisystembaum des
Wirtsbetriebssystems selbst.
BEFEHLE
Die folgenden Befehle werden verstanden:Maschinenbefehle
listListet die derzeit laufenden (online)
virtuellen Maschinen und Container auf. Um startfähige
Maschinenabbilder aufzuzählen, verwenden Sie list-images (siehe
unten). Beachten Sie, dass dieser Befehl standardmäßig die
besondere Maschine ».host« versteckt. Verwenden Sie den Schalter
--all, um sie anzuzeigen.
status NAME…
Zeigt Laufzeitstatusinformationen über
eine oder mehrere virtuelle Maschinen und Container an, gefolgt von den
neusten Protokolldaten aus dem Journal. Diese Funktion ist zur Darstellung
menschenlesbarer Ausgabe gedacht. Falls Sie Computer-auswertbare Ausgaben
benötigen, verwenden Sie stattdessen show. Beachten Sie, dass
die angezeigten Protokolldaten durch den Verwalter der virtuellen Maschine
oder Container gemeldet werden und häufig Konsolenausgabe aus der
Maschine enthält, aber nicht notwendigerweise Journal-Inhalte der
Maschine selbst.
show [NAME…]
Zeigt die Eigenschaften einer oder mehrerer
registrierter virtueller Maschinen oder Container oder des Verwalters selbst
an. Falls kein Argument angegeben ist, werden die Eigenschaften des Verwalters
angezeigt. Falls ein NAME angegeben ist, werden die Eigenschaften dieser
virtuellen Maschine oder dieses Containers angezeigt.
Standardmäßig werden leere Eigenschaften unterdrückt.
Verwenden Sie --all, um diese auch anzuzeigen. Um bestimmte
anzuzeigende Eigenschaften auszuwählen, verwenden Sie
--property=. Dieser Befehl ist dafür gedacht, eingesetzt zu
werden, wenn Computer-auswertbare Ausgabe benötigt wird und gibt nicht
den gesamten Control-Gruppenbaum oder Journal-Einträge aus. Verwenden
Sie status, falls Sie menschenlesbare Ausgabe benötigen.
start NAME…
Startet einen Container mittels
systemd-nspawn(1) als Systemdienst. Dies startet
[email protected], instanziiert für den angegebenen
Maschinennamen, ähnlich der Wirkung von systemctl start auf den
Dienstenamen. systemd-nspawn sucht nach einem Container-Abbild des
angegebenen Namens in /var/lib/machines/ (und anderen Suchpfaden, siehe unten)
und führt ihn aus. Verwenden Sie list-images (siehe unten) zur
Auflistung verfügbarer, startfähiger Container-Abbilder.
Beachten Sie, dass systemd-machined.service(8) auch mit einer Reihe von
anderen Container- und VM-Verwaltern koppelt, systemd-nspawn ist nur
eine Implementierung davon. Die meisten in machinectl
verfügbaren Befehle können auch auf durch andere Verwalter,
nicht nur systemd-nspawn, gesteuerte Container oder VMs angewandt
werden. Das Starten von VMs und Container-Abbildern bei diesen
Verwaltungsprogrammen benötigt angepasste Werkzeuge.
Um auf der Befehlszeile einen Container interaktiv mit vollem Zugriff auf die
Konsole des Containers zu starten, rufen Sie systemd-nspawn direkt auf.
Zum Stoppen eines Containers verwenden Sie machinectl poweroff.
login [NAME]
Öffnet eine interaktive
Terminalanmeldesitzung in einem Container oder auf der lokalen Maschine. Falls
ein Argument bereitgestellt wird, bezieht es sich auf die Container-Maschine,
zu der verbunden werden soll. Falls keine angegeben ist oder der
Container-Name als leere Zeichenkette oder der besondere Maschinenname
».host« angegeben ist (siehe unten), erfolgt die Verbindung
stattdessen zum lokalen Rechner. Dies erstellt eine TTY-Verbindung zu dem
angegebenen Container oder der lokalen Maschine und bittet um die
Ausführung eines Getty darauf. Beachten Sie, dass dies nur für
Container unterstützt wird, die systemd(1) als Init-System
ausführen.
Dieser Befehl öffnet eine vollständige Anmeldeaufforderung im
Container oder der lokalen Maschine, die dann um Benutzername und Passwort
bittet. Verwenden Sie shell (siehe unten) oder systemd-run(1)
mit dem Schalter --machine=, um direkt einen einzelnen Befehl
aufzurufen, entweder interaktiv oder im Hintergrund.
shell [[NAME@]NAME [PFAD
[ARGUMENTE…]]]
Öffnet eine interaktive Shell-Sitzung
in einem Container oder der lokalen Maschine. Das erste Argument bezieht sich
auf die zu verbindende Container-Maschine. Falls keine angegeben ist oder der
Container-Name als leere Zeichenkette oder der besondere Maschinenname
».host« angegeben ist (siehe unten), erfolgt die Verbindung
stattdessen zum lokalen Rechner. Dies funktioniert ähnlich zu
login, ruft aber sofort einen Benutzerprozess auf. Dieser Befehl
führt das angegebene Benutzerprogramm mit den angegebenen Argumenten
oder die Standard-Shell für den Benutzer, falls kein Befehl angegeben
ist, oder /bin/sh, falls keine Vorgabe-Shell gefunden wird, aus.
Standardmäßig kann ein anderer Benutzer ausgewählt
werden, indem --uid= verwandt oder dem Maschinennamen ein Benutzername
und das Zeichen »@« vorangestellt wird. Verwenden Sie
--setenv=, um Umgebungsvariablen für den ausgeführten
Prozess zu setzen.
Beachten Sie, dass machinectl shell den Exit-Code/Status des aufgerufenen
Shell-Prozesses nicht weiterleitet. Verwenden Sie stattdessen
systemd-run, falls diese Information benötigt wird (siehe
unten).
Der Einsatz des Befehls shell ohne Argumente (womit der aufgerufene
Befehl oder die Shell auf dem lokalen Rechner ausgeführt wird) ist auf
viele Arten ähnlich einer su(1)-Sitzung, isoliert aber anders
als su die neue Sitzung von der ursprünglichen Sitzung, so dass
kein Prozess und keine Sitzungseigenschaften gemeinsam benutzt werden und sie
in einem sauberen und gut-definiertem Zustand ist. Sie wird in einer neuen
Utmp-, Anmelde-, Audit-, Sicherheits- und Schlüsselbund-Sitzung
nachverfolgt und wird keine Umgebungsvariablen oder Ressourcenbegrenzungen
(und andere Eigenschaften) erben.
Beachten Sie, dass anstelle des Befehls machinectl shell
systemd-run(1) mit seinem Schalter --machine= verwandt werden
kann, was nicht-interaktive Aktionen, detailliertere und systemnahere
Konfiguration der betroffenen Unit sowie den Zugriff auf Laufzeit- und
Exit-Code/Status-Informationen des aufgerufenen Shell-Prozesses
ermöglicht. Verwenden Sie insbesondere den Schalter --wait von
systemd-run, um Exit-Statusinformationen vom aufgerufenen Prozess
weiterzuleiten. Verwenden Sie den Schalter --pty von
systemd-run, um eine interaktive Shell zu erlangen, ähnlich zu
machinectl shell. Im Allgemeinen wird systemd-run für
Skripting-Zwecke bevorzugt. Beachten Sie allerdings, dass systemd-run
höhere Privilegien als machinectl shell erlangen
könnte.
enable NAME…, disable NAME…
Aktiviert oder deaktiviert das Starten eines
Containers mittels systemd-nspawn(1) als Systemdienst beim Systemstart.
Dies aktiviert oder deaktiviert [email protected], instanziiert
für den angegebenen Maschinennamen, von der Wirkung ähnlich
systemctl enable oder systemctl disable auf den
Dienstenamen.
poweroff NAME…
Schaltet einen oder mehrere Container aus.
Dies wird durch Senden von SIGRTMIN+4 an den Init-Prozess des Containers einen
Neustart auslösen, wodurch Systemd-kompatible Init-Systeme sauber
heruntergefahren werden. Verwenden Sie stop als Alias für
poweroff. Diese Aktion funktioniert bei Containern, die keine
systemd(1)-kompatiblen Init-Systeme, wie Sysvinit, ausführen,
nicht. Verwenden Sie das (nachfolgend beschriebene) terminate, um einen
Container oder eine VM sofort zu beenden, ohne sie sauber
herunterzufahren.
reboot NAME…
Startet einen oder mehrere Container neu. Dies
wird durch Senden von SIGINT an den Init-Prozess des Containers einen Neustart
auslösen. Dies ist grob äquivalent zum Drücken von
Strg-Alt-Entf auf einem System außerhalb eines Containers und
kompatibel mit Containern mit beliebigen Systemverwaltern.
terminate NAME…
Beendet die virtuelle Maschine oder den
Container sofort, ohne ihn sauber herunterzufahren. Dies tötet alle
Prozesse der virtuellen Maschine oder des Containers und gibt alle dieser
Instanz zugeordneten Ressourcen frei. Verwenden Sie poweroff, um ein
sauberes Herunterfahren anzufordern.
kill NAME…
Sendet ein Signal an einen oder mehrere
Prozesse der virtuellen Maschine oder des Containers. Dies bezieht sich auf
Prozesse, wie sie vom Wirtsrechner gesehen werden, nicht Prozesse innerhalb
der virtuellen Maschine oder des Containers. Wählen Sie die zu
tötenden Prozesse mit --kill-whom=. Verwenden Sie
--signal= zur Auswahl des zu sendenden Signals.
bind NAME PFAD [PFAD]
Hängt eine Datei oder ein Verzeichnis
vom Wirtssystem in den angegebenen Container mit »bind« ein. Das
erste Pfadargument ist die Quelldatei oder das Quellverzeichnis auf dem
Wirtssystem, das zweite Pfadargument ist die Zieldatei oder der Zielpfad im
Container. Wenn Letzterer fehlt, wird dafür das gleiche wie der
Quellpfad auf dem Wirtssystem verwandt. Bei der Kombination mit dem Schalter
--read-only wird eine nur-lesbare Bind-Einhängung erstellt. Bei
der Kombination mit dem Schalter --mkdir wird vor dem Einhängen
der Zielpfad zuerst erstellt. Beachten Sie, dass diese Option derzeit nur
für systemd-nspawn(1)-Container unterstützt wird, und nur
wenn Benutzer-Namensräume ( --private-users) nicht verwandt
werden. Dieser Befehl unterstützt das Bind-Einhängen von
Verzeichnissen, regulären Dateien, Geräteknoten,
AF_UNIX-Socket-Knoten sowie FIFOs.
copy-to NAME PFAD [PFAD] --force
Kopiert Dateien oder Verzeichnisse vom
Wirtssystem in einen laufenden Container. Akzeptiert einen Container-Namen,
gefolgt vom Quellpfad auf dem Wirtssystem und dem Zielpfad im Container. Falls
der Zielpfad fehlt, wird dafür das gleiche wie der Quellpfad verwandt.
Falls der Rechner und der Container den gleichen Benutzer- und Gruppennamensraum
benutzen, wird die Dateieigentümerschaft durch numerische Benutzer- und
Gruppenkennung für die Kopie erhalten, andernfalls gehören alle
Dateien und Gruppen dem Benutzer und der Gruppe root (UID/GID 0).
copy-from NAME PFAD [PFAD] --force
Kopiert Dateien oder Verzeichnisse aus dem
Container auf den Rechner. Akzeptiert einen Container-Namen, gefolgt von einem
Quellpfad im Container und dem Zielpfad im Rechner. Falls der Zielpfad
entfällt, wird er identisch zum Quellpfad verwandt.
Falls der Rechner und der Container den gleichen Benutzer- und Gruppennamensraum
benutzen, wird die Dateieigentümerschaft durch numerische Benutzer- und
Gruppenkennung für die Kopie erhalten, andernfalls gehören alle
Dateien und Gruppen dem Benutzer und der Gruppe root (UID/GID 0).
Abbild-Befehle
list-imagesZeigt eine Liste von lokal installierten
Container- und VM-Abbildern. Dies zählt alle rohen Platten-Abbilder und
-Containerverzeichnisse und Teildatenträger in /var/lib/machines/ (und
anderen Suchpfaden, siehe unten) auf. Verwenden Sie start (siehe oben),
um einen Container aus den aufgeführten Abbildern auszuführen.
Beachten Sie, dass standardmäßig Container, deren Namen mit
einem Punkt (».«) beginnen, nicht angezeigt werden. Geben Sie
--all an, um diese auch anzuzeigen. Beachten Sie, dass das besondere
Abbild ».host« immer impliziet existiert und sich auf das Abbild
bezieht, von dem der Rechner selbst gestartet wurde.
image-status [NAME…]
Zeigt knappe Statusinformationen über
einen oder mehrere Container- oder VM-Abbilder an. Diese Funktion ist zur
Erzeugung menschenlesbarer Ausgabe gedacht. Verwenden Sie show-image
(siehe unten), um stattdessen Computer-auswertbare Ausgabe zu erstellen.
show-image [NAME…]
Zeigt Eigenschaften von einem oder mehreren
registrierten virtuellen Maschinen oder Container-Abbildern oder dem Verwalter
selbst an. Falls kein Argument angegeben ist, werden die Eigenschaften des
Verwalters angezeigt. Falls NAME angegeben ist, werden die Eigenschaften
dieser virtuellen Maschine oder des Container-Abbilds angezeigt.
Standardmäßig werden leere Eigenschaften unterdrückt.
Verwenden Sie --all, um diese auch anzuzeigen. Um bestimmte
Eigenschaften zur Anzeige auszuwählen, verwenden Sie
--property=. Dieser Befehl ist dafür gedacht, wenn
Computer-auswertbare Ausgabe benötigt wird. Verwenden Sie
image-status, falls Sie formatierte, menschenlesbare Ausgabe
suchen.
clone NAME NAME
Klont einen Container- oder ein VM-Abbild. Die
Argumente geben den Namen des zu klonenden und den Namen des frisch geklonten
Abbildes an. Beachten Sie, dass einfache Container-Abbilder mit diesem Befehl
in Btrfs-Teildatenträger-Abbilder geklont werden, falls dies das
zugrundeliegende Dateisystem unterstützt. Beachten Sie, dass Klonen
eines Container- oder VM-Abbildes für Dateisysteme optimiert ist, die
»Kopieren-beim-Schreiben« unterstützen und für
andere Dateisysteme, aufgrund von deren Beschränkungen, weniger
effizient sein könnte.
Beachten Sie, dass dieser Befehl den Rechnernamen, die Maschinenkennung und alle
anderen Einstellungen, die diese Instanz identifizieren könnten,
unverändert lässt. Das ursprüngliche Abbild und die
geklonte Kopie werden daher beide diese Berechtigungsnachweise gemeinsam
nutzen und es mag notwendig sein, diese in der Kopie manuell zu ändern.
Wird dies mit dem Schalter --read-only kombiniert, dann wird ein
nur-lesbares geklontes Abbild erstellt.
rename NAME NAME
Benennt ein Container- oder VM-Abbild um. Die
Argumente geben den Namen des umzubenennenden und den neuen Namen des Abbildes
an.
read-only NAME [LOGISCH]
Markiert ein Container- oder VM-Abbild
nur-lesbar oder hebt dieses auf. Akzeptiert als Argumente einen VM- oder
Container-Abbildnamen, gefolgt von einem logischen Wert. Falls der logische
Wert fehlt, wird positiv impliziert, d.h. das Abbild wird als nur-lesbar
markiert.
remove NAME…
Entfernt eines oder mehrere Container- oder
VM-Abbilder. Das besondere Abbild ».host«, das sich auf den
Verzeichnisbaum des Rechners selbst bezieht, darf nicht entfernt werden.
set-limit [NAME] BYTE
Setzt die maximale Größe in
Byte, zu der ein bestimmtes Container- oder VM-Abbild, oder alle Abbilder auf
der Platte anwachsen dürfen (Plattenkontingent). Akzeptiert entweder
einen oder zwei Parameter. Der erste, optionale Parameter bezieht sich auf den
Namen eines Containers oder einer VM. Falls angegeben, wird die
Größenbegrenzung des angegebenen Abbilds geändert. Falls
der Parameter fehlt, dann wird die Gesamtgrößenbegrenzung der
Summe aller lokal gespeicherten Abbilder geändert. Das
abschließende Argument gibt die Größenbegrenzung in Byte
an, die üblichen Einheiten K, M, G, T können optional
angehängt werden. Falls die Größenbegrenzung deaktiviert
werden soll, geben Sie »-« als Größe an.
Beachten Sie, dass die Container-bezogenen
Größenbeschränkungen nur auf Btrfs-Dateisystemen
unterstützt werden.
clean
Entfernt versteckte VM- oder
Container-Abbilder (oder alle). Dieser Befehl entfernt alle versteckten
Maschinenabbilder aus /var/lib/machines/, d.h. solche, deren Namen mit einem
Punkt beginnen. Verwenden Sie machinectl list-images --all, um eine
Liste aller Maschinenabbilder zu sehen, einschließlich der versteckten.
Bei der Kombination mit dem Schalter --all werden alle Abbilder entfernt,
nicht nur die versteckten. Dieser Befehl leert effektiv /var/lib/machines/.
Beachten Sie, dass Befehle wie machinectl pull-tar oder machinectl
pull-raw normalerweise zuerst versteckte, nur-lesbare und
unveränderte Maschinenabbilder aus dem heruntergeladenen Abbild
erstellen, bevor sie eine schreibbare Arbeitskopie davon klonen, um mehrfaches
Herunterladen zu vermeiden, falls Abbilder mehrmals verwandt werden. Verwenden
Sie machinectl clean, um auf diese Art erstellte alte, versteckte
Abbilder zu entfernen.
Abbildübertragungsbefehle
pull-tar URL [NAME]Lädt ein .tar-Container-Abbild von der
angegebenen URL herunter und macht es unter dem angegebenen lokalen
Maschinennamen verfügbar. Die URL muss vom Typ »http://«
oder »https://« sein und muss sich auf eine .tar-, .tar.gz-,
.tar.xz- oder .tar.bz2-Archivdatei beziehen. Falls der lokale Maschinenname
nicht angegeben wird, wird er aus der letzten Komponente der URL automatisch
ermittelt, wobei die Endung entfernt wird.
Das Abbild wird verifiziert, bevor es verfügbar gemacht wird,
außer --verify=no ist angegeben. Die Verifizierung erfolgt
entweder über eine integrierte signierte Datei mit dem Namen des
Abbildes und der Endung .sha256 oder mit separaten SHA256SUMS- und
SHA256SUMS.gpg-Dateien. Die Signaturdateien müssen auf dem gleichen
Web-Server unter der gleichen URL wie die .tar-Datei verfügbar gemacht
werden. Mit --verify=checksum wird nur die SHA256-Prüfsumme
für die Datei verifiziert, basierend auf der Datei mit Endung .sha256
oder der SHA256SUMS-Datei. Mit --verify=signature wird zuerst die
SHA-Prüfsumme der Datei mit der integrierten Signatur in der
.sha256-Datei oder der separaten GPG-Signaturdatei SHA256SUMS.gpg verifiziert.
Der öffentliche Schlüssel für diesen Verifikationsschritt
muss in /usr/lib/systemd/import-pubring.gpg oder
/etc/systemd/import-pubring.gpg verfügbar sein.
Das Container-Abbild wird in einen nur-lesbaren Teildatenträger in
/var/lib/machines/, der nach der angegebenen URL und seinem HTTP-etag benannt
ist, heruntergeladen und gespeichert. Von diesem Teildatenträger wird
dann ein schreibbarer Schnappschuss genommen, der nach dem angegebenen lokalen
Namen benannt wird. Dieses Verhalten stellt sicher, dass die Erstellung
mehrerer Container-Instanzen von der gleichen URL effizient erfolgt, da
mehrfaches Herunterladen nicht notwendig ist. Um nur das nur-lesbare Abbild zu
erstellen und die Erstellung des schreibbaren Schnappschusses zu vermeiden,
geben Sie »-« als lokalen Maschinennamen an.
Beachten Sie, dass einem nur-lesbaren Teildatenträger .tar- vorangestellt
und es daher durch list-images nur angezeigt wird, wenn auch
--all übergeben wird.
Beachten Sie, dass Drücken von Strg-C während der
Ausführung dieses Befehls das Herunterladen nicht abbricht. Verwenden
Sie das nachfolgend beschriebene cancel-transfer.
pull-raw URL [NAME]
Lädt ein .raw-Container- oder
VM-Plattenabbild von der angegebenen URL herunter und macht ihn unter dem
angegebenen lokalen Maschinennamen verfügbar. Das Container-Abbild muss
entweder eine .qcow2 oder ein rohes Platten-Abbild sein, das optional als .gz,
.xz oder .bz2 komprimiert sein kann. Falls der lokale Maschinenname nicht
angegeben wird, wird er aus der letzten Komponente der URL automatisch
ermittelt, wobei die Endung entfernt wird.
Abbild-Überprüfung ist für rohe und Tar-Abbilder identisch
(siehe oben).
Falls das heruntergeladene Abbild im Format .qcow2 ist, dann wird es vor der
Bereitstellung in eine rohe Abbilddatei konvertiert.
Heruntergeladene Abbilder dieses Typs werden als nur-lesbare .raw-Dateien in
/var/lib/machines/ abgelegt. Eine lokale, schreibbare (Referenz-gelinkte)
Kopie wird dann unter dem angegebenen lokalen Maschinennamen zur
Verfügung gestellt. Um die Erstellung der lokalen, schreibbaren Kopie
zu überspringen, übergeben Sie »-« als lokalen
Maschinennamen.
Ähnlich dem Verhalten von pull-tar wird dem nur-lesbaren Abbild
.raw- vorangestellt und damit wird es durch list-images nur angezeigt,
wenn auch --all übergeben wird.
Beachten Sie, dass Drücken von Strg-C während der
Ausführung dieses Befehls das Herunterladen nicht abbricht. Verwenden
Sie das nachfolgend beschriebene cancel-transfer.
import-tar DATEI [NAME], import-raw DATEI
[NAME]
Importiert ein TAR- oder RAW-Container- oder
VM-Abbild und legt es unter dem angegebenen Namen in /var/lib/machines/ ab.
Wird import-tar verwandt, dann sollte die als erstes Argument
übergebene Datei ein Tar-Archiv sein, das gegebenenfalls mit Xz, Gzip
oder Bzip2 komprimiert sein kann. Es wird dann in seinen eigenen
Teildatenträger in /var/lib/machines/ abgelegt. Wird import-raw
verwandt, dann sollten die Dateien qcow2- oder rohe Plattenabbilder sein, die
gegebenenfalls mit Xz, Gzip oder Bzip2 komprimiert sein können. Falls
das zweite Argument (der entstehende Abbildname) nicht angegeben ist, dann
wird er automatisch vom Dateinamen abgeleitet. Falls der Dateiname als
»-« übergeben wird, dann wird das Abbild von der
Standardeingabe gelesen, das zweite Argument ist dann verpflichtend.
Optional kann der Schalter --read-only zur Erstellung eines nur-lesbaren
Container- oder VM-Abbildes verwandt werden. Beim Importieren des Abbildes
erfolgt keine kryptographische Validierung.
Ähnlich wie beim Herunterladen von Abbildern können laufende
Importvorgänge mit list-transfers aufgeführt und mit
cancel-transfer abgebrochen werden.
import-fs VERZEICHNIS [NAME]
Importiert einen in einem lokalen Verzeichnis
gespeicherten Container in /var/lib/machines/. Dies funktioniert
ähnlich import-tar oder import-raw, aber das erste
Argument ist das Quellverzeichnis. Falls unterstützt, erzeugt dieser
Befehl einen Btrfs-Schnappschuss oder -Teildatenträger für das
neue Abbild.
export-tar NAME [DATEI], export-raw NAME
[DATEI]
Exportiert ein TAR- oder RAW-Container- oder
VM-Abbild und speichert es in der angegebenen Datei. Der erste Parameter
sollte ein VM- oder Container-Abbild-Name sein. Der zweite Parameter sollte
ein Dateipfad sein, in den das TAR- oder RAW-Abbild geschrieben wird. Falls
der Pfad auf ».gz« endet, wird die Datei mit Gzip komprimiert,
falls sie auf ».xz« endet, mit Xz und falls sie auf
».bz2« endet, mit Bzip2. Falls sie keine dieser Endungen hat,
bleibt die Datei unkomprimiert. Falls das zweite Argument fehlt, wird das
Abbild in die Standardausgabe geschrieben. Die Komprimierung kann mit dem
Schalter --format= auch explizit ausgewählt werden. Dies ist
insbesondere nützlich, wenn der zweite Parameter nicht angegeben wird.
Ähnlich wie beim Herunterladen und Importieren von Abbildern
können laufende Exportvorgänge mit list-transfers
aufgeführt und mit cancel-transfer abgebrochen werden.
Beachten Sie, dass derzeit nur Verzeichnisse und Teildatenträger-Abbilder
als TAR-Abbilder und dass nur rohe Platten-Abbilder als RAW-Abbilder
exportiert werden können.
list-transfers
Zeigt eine Liste von aktiven Herunterlade-,
Import- und Exportvorgängen von Container- oder VM-Abbildern.
cancel-transfer KENNUNG…
Bricht das Herunterladen, den Im- oder Export
des Container- oder VM-Abbildes mit der angegebenen Kennung ab. Um laufende
Übertragungen und ihre Kennungen anzuzeigen, verwenden Sie
list-transfers.
OPTIONEN
Die folgenden Optionen werden verstanden: -p, --property=Bei der Anzeige von Maschinen- oder
Abbildeigenschaften wird die Ausgabe auf bestimmte, durch die Argumente
angegebene Eigenschaften beschränkt. Falls nicht angegeben, werden alle
gesetzten Eigenschaften angezeigt. Das Argument sollte ein Eigenschaftsname,
wie »Name«, sein. Falls mehr als einmal angegeben, werden alle
Eigenschaften mit den angegebenen Namen angezeigt.
-a, --all
Bei der Anzeige der Maschinen- oder
Abbildeigenschaften werden alle Eigenschaften angezeigt, unabhängig
davon, ob sie gesetzt sind oder nicht.
Beim Auflisten von VM- oder Container-Abbildern werden Abbilder, deren Name mit
einem Punkt (».«) beginnt, auch aufgeführt.
Beim Bereinigen von VM- oder Container-Abbildern werden alle Abbilder, nicht nur
die versteckten, entfernt.
--value
Bei der Ausgabe der Eigenschaften mit
show wird nur der Wert angezeigt, der Eigenschaftsname und das
»=« wird übersprungen.
-l, --full
Verkürzt die Prozessbaumeinträge
oder die -tabelle nicht. Dies impliziert --max-addresses=full.
--kill-whom=
Wählt bei der Verwendung mit
kill den zu tötenden Prozess aus. Muss entweder leader
oder all sein, um auszuwählen, ob nur der Leitungsprozess der
Maschine oder alle Prozesse der Maschine getötet werden sollen. Falls
nicht angegeben, ist die Vorgabe all.
-s, --signal=
Sucht bei der Verwendung mit kill das
Signal aus, das an ausgewählte Prozesse gesandt wird. Muss eines der
gut bekannten Signalkennungen wie SIGTERM, SIGINT oder
SIGSTOP sein. Falls weggelassen, ist die Vorgabe SIGTERM.
Der besondere Wert »help« wird alle bekannten Werte darstellen und
das Programm wird sich sofort beenden; der besondere Wert »list«
wird alle bekannten Werte zusammen mit ihren numerischen Signalnummern
darstellen und das Programm wird sich sofort beenden.
--uid=
Wählt bei der Verwendung mit dem Befehl
shell die Benutzerkennung aus, unter der die interaktive Shell-Sitzung
geöffnet werden soll. Falls das Argument des Befehls shell auch
einen Benutzernamen angibt, wird diese Option ignoriert. Falls der Name nicht
auf eine der Arten angegeben ist, dann wird standardmäßig
»root« verwandt. Beachten Sie, dass dieser Schalter nicht
für den Befehl login unterstützt wird (siehe
unten).
-E NAME[=WERT],
--setenv=NAME[=WERT]
Bei der Verwendung mit dem Befehl shell
wird eine Umgebungsvariable für die ausgeführte Shell gesetzt.
Diese Option kann mehrfach angegeben werden, um mehrere Variablen zu setzen.
Wenn »=« und WERT fehlen, wird der Wert der Variablen mit
dem gleichen Namen in der Programmumgebung verwandt.
Beachten Sie, dass diese Option für den Befehl login nicht
unterstützt wird.
--mkdir
Wird dies mit bind verwandt, dann wird
die Zieldatei oder das Zielverzeichnis erstellt, bevor die
Bind-Einhängung angewandt wird. Beachten Sie, dass der Name dieser
Option zwar anzeigt, dass sie nur für Verzeichnisse geeignet ist, sie
aber auch den Zieldateiknoten, über den eingehängt werden soll,
falls das einzuhängende Objekt kein Verzeichnis, sondern eine
reguläre Datei, ein Geräteknoten, ein Socket oder ein FIFO ist,
erstellt.
--read-only
Erstellt bei der Verwendung mit bind
eine nur lesbare Bind-Einhängung.
Bei der Verwendung mit clone, import-raw oder import-tar
wird ein nur-lesbares Container- oder VM-Abbild erstellt.
-n, --lines=
Steuert bei der Verwendung mit status
die Anzahl der anzuzeigenden Journal-Einträge, gezählt vom
neusten. Akzeptiert eine positive Ganzzahl als Argument.
Standardmäßig 10.
-o, --output=
Steuert bei der Verwendung mit status
die Formatierung der angezeigten Journal-Einträge. Für die
Auswahlmöglichkeiten siehe journalctl(1).
Standardmäßig »short«.
--verify=
Gibt beim Herunterladen eines Container- oder
VM-Abbildes an, ob das Abbild vor der Bereitstellung verifiziert werden soll.
Akzeptiert »no«, »checksum« oder
»signature«. Falls »no«, erfolgt keine
Verifizierung. Falls »checksum« angegeben ist, wird nach
Abschluss des Herunterladens die Integrität überprüft,
aber es erfolgt keine Signaturverifizierung. Falls »signature«
angegeben ist, wird die Prüfsumme und die Signatur des Abbildes unter
Verwendung des lokalen Schlüsselbundes mit vertrauenswürdigen
Lieferanten geprüft. Es wird nachdrücklich empfohlen, diese
Option auf »signature« zu setzen, falls der Server und das
Protokoll dies unterstützen. Standardmäßig
»signature«.
--force
Wird ein Container- oder VM-Abbild
heruntergeladen und eine lokale Kopie des angegebenen Maschinennamens
existiert bereits, dann wird diese zuerst gelöscht und durch das neu
heruntergeladene Abbild ersetzt.
--format=
Gibt bei der Verwendung mit den Befehlen
export-tar und export-raw das für die erstellte Datei zu
verwendende Kompressionsformat an. Akzeptiert entweder
»uncompressed«, »xz«, »gzip« oder
»bzip2«. Standardmäßig wird das Format automatisch
vom übergebenen Abbilddateinamen ermittelt.
--max-addresses=
Begrenzt bei der Verwendung mit dem Befehl
list-machines die Anzahl der für jede Maschine angezeigten
IP-Adressen. Standardmäßig 1. Durch Verwendung von
»all« können alle Adressen angefordert werden. Falls die
Begrenzung 0 ist, wird die Adressspalte nicht angezeigt. Falls andernfalls die
Maschine mehr Adressen als angezeigt hat, dann folgt »…«
der letzten Adresse.
-q, --quiet
Unterdrückt bei der Ausführung
zusätzliche Informationsausgabe.
-H, --host=
Führt die Aktion aus der Ferne aus.
Geben Sie den Rechnernamen oder einen Benutzernamen und Rechnernamen (getrennt
durch »@«) an, zu dem verbunden werden soll. Dem Rechnernamen
darf optional ein Port, auf dem SSH auf Anfragen wartet, getrennt durch
»:« und dann ein Container auf dem angegebenen Host
angehängt werden, womit direkt zu einem bestimmten Container auf dem
angegebenen Rechner verbunden wird. Dies verwendet SSH, um mit der
Maschinen-Verwalterinstanz auf dem Rechner in der Ferne zu kommunizieren.
Container-Namen dürfen mit machinectl -H RECHNER
aufgezählt werden. Stellen Sie IPv6-Adressen in Klammern.
-M, --machine=
Verbindet zu dem in dem lokalen Container
laufenden systemd-machined.service(8), um die angegebenen Aktionen
innerhalb des Containers auszuführen.
--no-pager
Leitet die Ausgabe nicht an ein
Textanzeigeprogramm weiter.
--no-legend
Gibt die Legende nicht aus, d.h. die
Spaltenköpfe und die Fußzeile mit Hinweisen.
--no-ask-password
Befragt den Benutzer nicht für
Authentifizierung für privilegierte Aktionen.
-h, --help
Zeigt einen kurzen Hilfetext an und beendet
das Programm.
--version
Zeigt eine kurze Versionszeichenkette an und
beendet das Programm.
MASCHINEN- UND ABBILDNAMEN
Das Werkzeug machinectl agiert auf Maschinen und Abbildern, deren Namen strengen Regeln folgen müssen. Maschinennamen müssen für den Einsatz als Rechnernamen geeignet sein und daher einer konservativen Teilmenge der DNS- und UNIX/Linux-Semantik folgen. Insbesondere müssen sie aus einer oder mehreren, durch Punkte getrennten nicht-leeren Kennzeichnungszeichenketten bestehen. Es sind keine Punkte am Anfang oder Ende erlaubt. Es ist keine Abfolge von mehreren Punkten erlaubt. Die Kennzeichnungszeichenkette darf nur aus alphanumerischen Zeichen sowie dem Binde- und dem Unterstrich bestehen. Die maximale Länge von Maschinennamen ist 64 Zeichen. Eine besondere Maschine mit dem Namen ».host« bezieht sich auf den laufenden Rechner selbst. Dies ist auch für die Ausführung von Aktionen oder Untersuchungen des Rechners selbst nützlich. Beachten Sie, dass machinectl list diese besondere Maschine nur anzeigt, wenn der Schalter --all angegeben ist. Anforderungen an Abbildnamen sind allerdings weniger streng. Sie müssen gültiges UTF-8 und als Dateinamen geeignet sein (und damit weder der einzelne noch der doppelte Punkt sein noch Schrägstriche enthalten) sowie keine Steuerzeichen enthalten. Da viele Aktionen nach einem Abbild über den Namen der angeforderten Maschine suchen, wird empfohlen, Abbilder auf die gleiche strenge Art wie Maschinen zu benennen. Ein besonderes Abbild mit dem Namen ».host« bezieht sich auf das Abbild des laufenden Rechners. Er wird daher konzeptionell auf den oben beschriebenen Maschinennamen ».host« abgebildet. Beachten Sie, dass machinectl list-images dieses besondere Abbild auch nur anzeigen wird, wenn --all angegeben ist.DATEIEN UND VERZEICHNISSE
Maschinenabbilder werden bevorzugt in /var/lib/machines/ gespeichert, aber es wird auch in /usr/local/lib/machines/ und /usr/lib/machines/ nach ihnen gesucht. Aus Kompatibilitätsgründen wird auch das Verzeichnis /var/lib/container/ durchsucht. Beachten Sie, dass unterhalb von /usr/ gespeicherte Abbilder immer als nur-lesbar betrachtet werden. Es ist möglich, Maschinenabbilder von anderen Verzeichnissen nach /var/lib/machines/ zu symlinken, um sie der Steuerung durch machinectl zur Verfügung zu stellen. Beachten Sie, dass einige Abbildaktionen nur auf Btrfs-Dateisystemen unterstützt werden, effizient oder atomar sind. systemd-nspawn(1) und machinectl verstehen Plattenabbilder in drei Formaten:•Ein einfacher Verzeichnisbaum, der die
Dateien und Verzeichnisse des zu startenden Containers enthält.
•Teildatenträger (auf
Btrfs-Dateisystemen), die ähnlich zu den oben beschriebenen einfachen
Verzeichnissen sind. Sie verfügen allerdings über
zusätzliche Vorteile, wie effizientes Klonen und
Kontingentmeldungen.
•»Rohe« Plattenabbilder,
d.h. Binärabbilder von Platten mit einer GPT- oder
MBR-Partitionstabelle. Abbilder dieses Typs sind normale Dateien mit der
Endung ».raw«.
Siehe systemd-nspawn(1) für weitere Informationen über
Abbildformate, insbesondere dessen Optionen --directory= und
--image=.
BEISPIELE
Beispiel 1. Ein Ubuntu-Abbild herunterladen und darin eine Shell öffnen# machinectl pull-tar https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz # systemd-nspawn -M trusty-server-cloudimg-amd64-root
# machinectl pull-raw --verify=no \ https://download.fedoraproject.org/pub/fedora/linux/releases/36/Cloud/x86_64/images/Fedora-Cloud-Base-36-1.5.x86_64.raw.xz \ Fedora-Cloud-Base-36-1.5.x86-64 # systemd-nspawn -M Fedora-Cloud-Base-36-1.5.x86-64 # passwd # exit # machinectl start Fedora-Cloud-Base-36-1.5.x86-64 # machinectl login Fedora-Cloud-Base-36-1.5.x86-64
# machinectl export-tar fedora myfedora.tar.xz
# machinectl shell --uid=lennart
EXIT-STATUS
Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.UMGEBUNGSVARIABLEN
$SYSTEMD_LOG_LEVELDie maximale Protokollierstufe ausgesandter
Nachrichten (Nachrichten mit einer höheren Protokollierstufe, d.h.
weniger wichtige, werden unterdrückt). Sie muss (in absteigender
Reihenfolge) entweder alert, crit, err, warning,
notice, info, debug oder eine Ganzzahl im Bereich
0…7 sein. Siehe syslog(3) für weitere
Informationen.
$SYSTEMD_LOG_COLOR
Ein logischer Wert. Falls wahr, werden auf das
TTY geschriebene Nachrichten gemäß ihrer Priorität
eingefärbt.
Diese Einstellung ist nur nützlich, falls die Nachrichten direkt auf das
Terminal geschrieben werden, da journalctl(1) und andere Werkzeuge, die
Protokolle anzeigen, selbständig Nachrichten gemäß ihrer
Protokollierungsstufe einfärben.
$SYSTEMD_LOG_TIME
Ein logischer Wert. Falls wahr, wird den
Protokollnachrichten der Konsole ein Zeitstempel vorangestellt.
Diese Einstellung ist nur nützlich, falls die Nachrichten direkt auf das
Terminal oder in eine Datei geschrieben werden, da journalctl(1) und
andere Werkzeuge, die Protokolle anzeigen, selbständig Zeitstempel
basierend auf ihren Metadaten den Nachrichten anhängen werden.
$SYSTEMD_LOG_LOCATION
Ein logischer Wert. Falls wahr, wird den
Protokollnachrichten ein Dateinamen und eine Zeilenummer in dem Quellcode, aus
dem die Nachrichten stammen, vorangestellt.
Beachten Sie, dass der Protokollierort sowieso oft als Metadaten zu den
Journal-Einträgen angehängt ist. Die Aufnahme in den
Nachrichtentext kann bei der Fehlersuche in Programmen dennoch praktisch
sein.
$SYSTEMD_LOG_TID
Ein logischer Wert. Falls wahr, wird den
Nachrichten die aktuelle numerische Thread-Kennung (TID) vorangestellt.
Beachten Sie, dass diese Informationen sowieso als Metadatan an
Journal-Einträge angehängt wird. Die Aufnahme direkt im
Nachrichtentext kann aber trotzdem bei der Fehlersuche in Programmen praktisch
sein.
$SYSTEMD_LOG_TARGET
Das Ziel für Protokolliernachrichten.
Entweder console (auf das angehängte TTY protokollieren),
console-prefixed (auf das angehängte TTY protokollieren, aber
die Protokollierstufe und »Einrichtung« voranstellen, siehe
syslog(3)), kmsg (in den zirkulären
Kernel-Protokollpuffer protokollieren), journal (in das Journal
protokollieren ( journal-or-kmsg (in das Journal protokollieren, falls
verfügbar, und andernfalls nach Kmsg), auto (das geeignete
Protokollierziel automatisch ermitteln, die Vorgabe) oder null (die
Protokollierung deaktivieren).
$SYSTEMD_PAGER
Zu verwendendes Textanzeigeprogramm, wenn
--no-pager nicht angegeben ist; setzt $PAGER außer Kraft.
Falls weder $SYSTEMD_PAGER noch $PAGER gesetzt sind, wird eine
Reihe wohlbekannter Textanzeigeprogrammimplementierungen der Reihe nach
ausprobiert, einschließlich less(1) und more(1), bis
eines gefunden wird. Falls keine Textanzeigeprogrammimplementierung gefunden
wird, wird keines aufgerufen. Setzen der Umgebungsvariablen auf die leere
Zeichenkette oder den Wert »cat« ist äquivalent zur
Übergabe von --no-pager.
Beachten Sie: Falls $SYSTEMD_PAGERSECURE nicht gesetzt ist, dann wird
$SYSTEMD_PAGER (sowie $PAGER) ohne Rückmeldung
ignoriert.
$SYSTEMD_LESS
Setzt die an less übergebenen
Optionen (standardmäßig »FRSXMK«) außer
Kraft.
Benutzer könnten insbesondere zwei Optionen ändern wollen:
K
Siehe less(1) für weitere Ausführungen.
$SYSTEMD_LESSCHARSET
Diese Option weist das Textanzeigeprogramm an,
sich sofort beim Druck von Strg-C zu beenden. Um less die Handhabung
von Strg-C selbst zum Umschalten auf die Eingabeaufforderung zu erlauben,
setzen Sie diese Option zurück.
Falls der Wert von $SYSTEMD_LESS kein »K« enthält
und less das aufgerufene Textanzeigeprogramm ist, wird Strg+C durch das
Programm ignoriert und muss durch das Textanzeigeprogramm selbst gehandhabt
werden.
X
Diese Option weist das Textanzeigeprogramm an,
keine Termcap-Initialisierungs- und -Deinitalisierungszeichenketten an das
Terminal zu senden. Dies ist standardmäßig gesetzt, damit die
Darstellung von Befehlen selbst nach dem Beenden des Textanzeigeprogramms
sichtbar bleibt. Allerdings stehen dadurch einige Funktionen des
Textanzeigeprogramms nicht zur Verfügung; insbesondere ist das Scrollen
in der Ausgabe mit der Maus nicht möglich.
Setzt den an less zu
übergebenden Zeichensatz (standardmäßig
»utf-8«, falls das aufrufende Terminal als UTF-8-kompatibel
erkannt wurde) außer Kraft.
$SYSTEMD_PAGERSECURE
Akzeptiert einen logischen Wert. Wenn wahr,
wird der »sichere« Modus des Seitenanzeigeprogramms verwandt,
falls falsch, wird dieser deaktiviert. Falls $SYSTEMD_PAGERSECURE
überhaupt nicht gesetzt ist, dann wird der sichere Modus aktiviert,
falls die effektive Kennung nicht identisch zu dem Eigentümer der
Anmeldesitzung ist, siehe geteuid(2) und
sd_pid_get_owner_uid(3). Im sicheren Modus wird LESSSECURE=1
beim Aufruf des Seitenanzeigeprogramms gesetzt und das Seitenanzeigeprogramm
muss Befehle deaktivieren, die neue Dateien öffnen oder erstellen oder
die einen neuen Unterprozess starten. Falls $SYSTEMD_PAGERSECURE
überhaupt nicht gesetzt ist, werden Seitenanzeigeprogramme, bei denen
unbekannt ist, ob sie einen sicheren Modus implementieren, nicht verwandt.
(Derzeit implementiert nur less(1) einen sicheren Modus.)
Hinweis: Wenn Befehle mit erhöhten Rechten ausgeführt werden,
beispielsweise mittels sudo(8) oder pkexec(1), muss Vorsicht
walten gelassen werden, um sicherzustellen, dass keine ungeplanten
interaktiven Funktionalitäten aktiviert werden. Der
»sichere« Modus für das Seitenanzeigeprogramm kann wie
oben beschrieben automatisch aktiviert werden. Durch Setzen von
SYSTEMD_PAGERSECURE=0 oder durch Nichtenfernen dieser Einstellung aus
der ererbten Umgebung wird es dem Benutzer ermöglicht, beliebige
Befehle auszuführen. Beachten Sie, dass auch
$SYSTEMD_PAGERSECURE gesetzt werden muss, falls die Variablen
$SYSTEMD_PAGER oder $PAGER berücksichtigt werden sollen.
Es kann sinnvoll sein, stattdessen den Seitenanzeiger komplett mit
--no-pager zu deaktivieren.
$SYSTEMD_COLORS
Akzeptiert ein logisches Argument. Wenn wahr,
werden systemd und verwandte Hilfswerkzeuge Farben in ihrer Ausgabe
verwenden, andernfalls wird die Ausgabe einfarbig sein. Zusätzlich kann
die Variable eine der folgenden besonderen Werte annehmen: »16«,
»256«, um die Verwendung von Farbe auf die grundlegenden 16 bzw.
256 ANSI-Farben zu beschränken. Dies kann festgelegt werden, um die auf
$TERM und der vorliegenden Verbindung der Konsole basierende
automatische Entscheidung außer Kraft zu setzen.
$SYSTEMD_URLIFY
Dies muss ein logischer Wert sein. Er steuert,
ob anklickbare Links für Terminal-Emulatoren, die dies
unterstützen, erstellt werden sollen. Dies kann angegeben werden, um
die Entscheidung, die systemd basierend auf $TERM und anderen
Bedingungen trifft, außer Kraft zu setzen.
SIEHE AUCH
systemd(1), systemd-machined.service(8), systemd-nspawn(1), systemd.special(7), tar(1), xz(1), gzip(1), bzip2(1)ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <[email protected]> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzersystemd 252 |