VMs CLI
Introduktion
VMs CLI er et kommandolinjeværktøj til TerraMaster VMs-virtualiseringsapplikationen, som tilbyder de samme forespørgsels- og driftsmuligheder som webgrænsefladen. CLI kommunikerer med VMs-tjenesten via en lokal unix socket og anvender et standardiseret kommandogrænseflade og JSON-uddataformat, hvilket gør det nemt at integrere i scripts, automatiseret drift og sekundær udvikling.
Hovedfunktioner
- Klar til brug: installeres sammen med VMs-applikationen, ingen yderligere installation nødvendig
- Fleksibel anvendelse: understøtter lokale terminaler, ekstern SSH, scripts, AI-værktøjer og andre måder at kalde den på
- Interaktiv og ikke-interaktiv tilstand: velegnet til både administratorers daglige vedligeholdelse og til scripts og automatiserede opgaver
- JSON-uddata: nemt for programmer at parse og integrere i automatisering
- Lokal kommunikation: kommunikerer kun med VMs-tjenesten via en lokal unix socket og åbner ingen porte eksternt
- Bekræftelse af farlige handlinger: handlinger som at slette virtuelle maskiner eller netværk kræver som standard bekræftelse
Kom godt i gang
# 在终端中执行(可通过本地终端、SSH、脚本、AI 工具等任意命令行途径)
vms --help
# 查看虚拟机列表
vms vm list
# 查看虚拟机详情
vms vm get <id>
# 以 JSON 格式输出(便于脚本解析)
vms vm list --json
Eksempel på uddata fra vms vm list:
NAME GUEST ID STATUS VCPU NUM VRAM SIZE IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -
Globale indstillinger
Følgende indstillinger gælder for alle kommandoer:
| Indstilling | Forkortelse | Beskrivelse |
|---|---|---|
--help | -h | Viser hjælpeinformation for kommandoen |
--version | -v | Viser versionsnummer (kan kombineres med --json for strukturerede data) |
--json | - | Uddata i JSON-format |
--yes | -y | Springer bekræftelse over ved farlige handlinger (påkrævet i ikke-interaktiv tilstand) |
--debug | - | Aktiverer fejlsøgningsuddata med detaljeret udførelsesforløb |
--socket <path> | - | Sti til VMs unix socket, standard /var/api/VMs.sock |
--timeout <duration> | - | Anmodningstimeout, standard 30s |
Eksempel på versionsinformation
vms --version
vms CLI v1.0.058
vms --version --json
{
"build": "20260911",
"cli_version": "v1.0.058"
}
Driftsmiljø
VMs CLI installeres sammen med VMs-applikationen. Når applikationen aktiveres, linkes CLI til systemets standard PATH-mappe, og den kan bruges direkte efter SSH-login.
| Element | Beskrivelse |
|---|---|
| CLI-fil | /Volume1/@apps/VMs/bin/vms |
| Kommandosti | /usr/local/sbin/vms (allerede i systemets PATH) |
| Kommunikationsmetode | Lokal unix socket, standard /var/api/VMs.sock |
| Målgruppe | Administratorer logget ind på den lokale maskine |
Bemærk:
- CLI bruges til at administrere virtuelle maskiner på den lokale maskine og understøtter ikke fjernadministration af andre enheder via CLI.
- Backenden returnerer altid HTTP 200; hvorvidt kommandoen lykkedes, afgøres af feltet
codei svarteksten, som CLI omdanner til en exitkode. - Farlige handlinger (slet virtuel maskine, slet netværk, slet image, slet lagerplads) anmoder om bekræftelse i interaktiv tilstand og kræver eksplicit
--yesi ikke-interaktiv tilstand.
Kommandooversigt
Her følger en hurtig referenceoversigt over alle vms-kommandoer:
| Overordnet kommando | Underkommando | Funktionsbeskrivelse | Bekræftelse | Høj risiko |
|---|---|---|---|---|
| vms | --version | Viser versionsinformation | Nej | Nej |
| vms vm | list | Viser alle virtuelle maskiner | Nej | Nej |
| vms vm | get | Viser detaljer for en angivet virtuel maskine | Nej | Nej |
| vms vm | list-resource | Viser ressourcer tilgængelige ved oprettelse af virtuelle maskiner | Nej | Nej |
| vms vm | logs | Viser den virtuelle maskines handlingslog | Nej | Nej |
| vms vm | poweron | Starter den virtuelle maskine | Nej | Nej |
| vms vm | poweroff | Lukker den virtuelle maskine (normal nedlukning) | Ja | Nej |
| vms vm | force-poweroff | Tvinger den virtuelle maskine til at lukke | Ja | ✅ |
| vms vm | reboot | Genstarter den virtuelle maskine | Nej | Nej |
| vms vm | pause | Sætter den virtuelle maskine på pause | Nej | Nej |
| vms vm | resume | Genoptager en virtuel maskine på pause | Nej | Nej |
| vms vm | autorun | Indstiller automatisk start ved opstart | Nej | Nej |
| vms vm | clone | Kloner den virtuelle maskine | Nej | Nej |
| vms vm | export | Eksporterer den virtuelle maskine som OVA-fil | Nej | Nej |
| vms vm | delete | Sletter den virtuelle maskine | Ja | ✅ |
| vms vm disk | list | Viser den virtuelle maskines virtuelle harddiske | Nej | Nej |
| vms vm snapshot | list | Viser den virtuelle maskines snapshots | Nej | Nej |
| vms vm snapshot | create | Opretter et snapshot | Nej | Nej |
| vms vm snapshot | edit | Redigerer snapshottets beskrivelse og låsetilstand | Nej | Nej |
| vms vm snapshot | config | Viser den virtuelle maskinekonfiguration, der er gemt i snapshottet | Nej | Nej |
| vms vm snapshot | consistency | Forhåndsviser snapshot-konsistens | Nej | Nej |
| vms vm | link | Henter forbindelsesinformation for VNC-konsollen | Nej | Nej |
| vms network | list | Viser virtuelle netværk | Nej | Nej |
| vms network | get | Viser detaljer for et virtuelt netværk | Nej | Nej |
| vms network | create | Opretter et virtuelt netværk | Nej | Nej |
| vms network | update | Opdaterer et virtuelt netværk | Nej | Nej |
| vms network | delete | Sletter et virtuelt netværk | Ja | ✅ |
| vms network | list-interfaces | Viser netværksgrænseflader af en angivet type | Nej | Nej |
| vms network | list-vnics | Viser virtuelle netværkskort på netværket | Nej | Nej |
| vms network | ovsinfo | Viser, om OVS er aktiveret | Nej | Nej |
| vms image | list | Viser images | Nej | Nej |
| vms image | edit | Redigerer image-information | Nej | Nej |
| vms image | delete | Sletter et image | Ja | ✅ |
| vms image | list-vms | Viser virtuelle maskiner, der bruger dette image | Nej | Nej |
| vms repo | list | Viser lagerpladser | Nej | Nej |
| vms repo | get | Viser detaljer for en lagerplads | Nej | Nej |
| vms repo | update | Opdaterer lagerpladskonfigurationen | Nej | Nej |
| vms repo | delete | Sletter en lagerplads | Ja | ✅ |
| vms repo | list-volumes | Viser tilgængelige volumener | Nej | Nej |
| vms repo | list-vms | Viser virtuelle maskiner i lagerpladsen | Nej | Nej |
| vms repo | check-running | Kontrollerer virtuelle maskiner, der kører på lagerpladsen | Nej | Nej |
| vms repo | whether-exist-data | Kontrollerer, om der findes data i lagerpladsen | Nej | Nej |
| vms setting | get | Viser globale indstillinger | Nej | Nej |
| vms collectd | hostinfo | Viser værtsmaskinens overvågningsinformation | Nej | Nej |
| vms collectd | vminfo | Viser den virtuelle maskines overvågningsinformation | Nej | Nej |
| vms collectd | storageinfo | Viser lagerovervågningsinformation | Nej | Nej |
Kommandoreference
<id> i kommandoerne er den virtuelle maskines ID og svarer til GUEST ID i uddata fra listen over virtuelle maskiner; det samme gælder <network_id>, <image_id> og <repo_id>, som kan hentes via henholdsvis vms network list, vms image list og vms repo list.
Om uddataeksempler:
vms' tabeluddata afkorter for lange feltværdier til en fast bredde (afsluttet med ellipsis og uafhængigt af terminalbredden), f.eks.VDISKS,VNICSogISO IMAGESi den virtuelle maskinekonfiguration samt imagenavne. Derfor gives der i dette dokument komplette--json-uddataeksempler for kommandoer med lange felter, mens de øvrige kommandoer gives tabeluddataeksempler. Ved scriptbehandling anbefales det også at bruge--jsonkonsekvent.
I. Forespørgsel om virtuelle maskiner
vms vm list – Viser virtuelle maskiner
Viser alle virtuelle maskiner på den lokale maskine og deres grundlæggende status.
vms vm list [--limit N] [--offset N] [--json]
--limitog--offseter pagineringsparametre- Uddatakolonner: navn, virtuel maskine-ID, driftstilstand, antal CPU-kerner, hukommelsesstørrelse (i KB), IP-adresse
Eksempel på uddata:
NAME GUEST ID STATUS VCPU NUM VRAM SIZE IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -
Almindelige værdier for STATUS:
| Status | Beskrivelse |
|---|---|
| running | Kører |
| shutdown | Lukket ned |
| saved | Sat på pause (driftstilstand gemt på disken) |
vms vm get – Viser detaljer for en virtuel maskine
Viser den fulde konfiguration og driftstilstand for en angivet virtuel maskine.
vms vm get <id> --json
- Uddata indeholder alle konfigurations- og driftstilstandsfelter for den virtuelle maskine
- Tomme værdier som ingen beskrivelse eller ingen IP vises som en tom streng
- Hvis den virtuelle maskine ikke findes, returnerer kommandoen en fejl og udsender en fejlmeddelelse
Eksempel på uddata:
{
"iso_images": [
"c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"9b3f2fdd-9173-4611-a84c-0cc9ce88293c"
],
"image_paths": [
"",
""
],
"autorun": 0,
"boot_from": "cdrom",
"bios": "bios",
"kb_layout": "en-us",
"serial_console": true,
"usb_version": 2,
"usb_device_name": [
"USB - Integrated Technology Express, Inc. Disk 2.0"
],
"usbs": [
":3:3:048d:1234"
],
"use_ovmf": false,
"vnics": [
{
"prefer_sriov": false,
"vnic_type": 3,
"mac": "1a:e2:ae:95:4a:51",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"virtual_interface_id": "fe972ef5-b066-4967-89fa-8e85e43c8808"
}
],
"operating_system_type": 0,
"vdisks": [
{
"vdisk_mode": 1,
"name": "",
"unmap": false,
"iops_enable": false,
"dev_limit": 0,
"dev_reservation": 0,
"dev_weight": 3,
"vdisk_size": 1024,
"idx": 0,
"vdisk_id": "f4ed4eae-1512-4273-963b-79ebd93a0932",
"disk_image_type": "",
"disk_image_id": ""
}
],
"name": "win10",
"vcpu_num": 4,
"vcpu_usage": 0,
"vram_size": 2097152,
"video_card": "vga",
"machine_type": "1",
"cpu_weight": 3,
"ip": "",
"desc": "",
"cpu_passthru": false,
"hyperv_enlighten": true,
"cpu_pin_num": 0,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"repo_name": "VM-Storage01",
"poweron_after_create": false,
"guest_id": "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1",
"increaseAllocatedSize": 0,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "",
"snap_num": 0,
"has_guest_agent": false,
"status": "shutdown",
"status_code": 0,
"status_desc": "",
"host_ram_size": 0,
"total_throughput": 0,
"total_iops": 0,
"total_io_latency": 0,
"total_rx_bytes": 0,
"total_tx_bytes": 0,
"memory_usage": 0,
"cpu_usage": 0,
"vm_status_progress": 0
}
vms vm list-resource – Viser tilgængelige ressourcer til oprettelse af virtuelle maskiner
Viser de ressourcer, værtsmaskinen kan tilbyde, såsom firmwaretyper, images, CPU, hukommelse, netværk, lagerplads og enheder, der kan sendes direkte igennem (passthrough), til vurdering inden oprettelse af en virtuel maskine.
vms vm list-resource --json
Returnerede felter: max_cpu_num, max_ram_size, usbs, pci_devices, networks, repos, images, video_cards, firmware, keyboard_layout.
Eksempel på uddata:
{
"max_cpu_num": 4,
"max_ram_size": 16503336960,
"usbs": [
{
"product_name": "4-Port USB 2.0 Hub",
"usb_id": ":3:3:0x0bda:0x5423",
"version": ""
},
{
"product_name": "4-Port USB 3.2 Hub",
"usb_id": ":4:2:0x0bda:0x0423",
"version": ""
},
{
"product_name": "Flash Drive",
"usb_id": ":3:2:0x058f:0x6387",
"version": ""
}
],
"pci_devices": [
{
"device_name": "",
"bdf": "0000:02:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 13,
"iommu_group_bdfs": [
"0x0000:0x02:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:0d.0",
"vendor_id": "0x8086",
"product_id": "0x464e",
"class_id": "0x0c0330",
"iommu_group": 2,
"iommu_group_bdfs": [
"0x0000:0x00:0x0d.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:03:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 14,
"iommu_group_bdfs": [
"0x0000:0x03:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.0",
"vendor_id": "0x8086",
"product_id": "0x54ed",
"class_id": "0x0c0330",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.2",
"vendor_id": "0x8086",
"product_id": "0x54ef",
"class_id": "0x050000",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "",
"type": "IOMMU Group Device"
}
],
"networks": [
{
"name": "VM-Network04",
"network_id": "ce9807c9-47b3-4258-9a80-ea8db1fd785d",
"support_sriov": false
},
{
"name": "VM-Network05",
"network_id": "b56c2f7b-e3f0-4b68-8a3b-245c90a8f8b5",
"support_sriov": false
},
{
"name": "VM-Network01",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"support_sriov": false
},
{
"name": "VM-Network02",
"network_id": "6c9fffd8-c7c4-4968-9b50-6890a640ec94",
"support_sriov": false
},
{
"name": "VM-Network03",
"network_id": "4c05b2a2-dd49-4588-ac5c-64975c92d2d3",
"support_sriov": false
}
],
"repos": [
{
"name": "VM-Storage01",
"free_size": 941970767872,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"volume_size": 1099511627776,
"file_system": "btrfs",
"status": ""
},
{
"name": "VM-Storage02",
"free_size": 445785296896,
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"volume_size": 536870912000,
"file_system": "btrfs",
"status": ""
}
],
"images": [
{
"id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"status": "available",
"type": "iso",
"used_size": 3884539904
},
{
"id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"name": "virtio-win-0.1.285pro",
"status": "available",
"type": "iso",
"used_size": 789645312
},
{
"id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"name": "haos_ova-18.2",
"status": "available",
"type": "qcow2",
"used_size": 1091698688,
"virtual_size": 34359738368
},
{
"id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"status": "available",
"type": "iso",
"used_size": 5858816000
}
],
"video_cards": [
"cirrus",
"vga",
"vmvga"
],
"firmware": [
"Legacy BIOS",
"UEFI"
],
"keyboard_layout": [
"fr-be",
"ar",
"bepo",
"cz",
"da",
"de",
"de-ch",
"en-gb",
"en-us",
"es",
"et",
"fo",
"fr",
"fr-be",
"fr-ca",
"fr-ch",
"hr",
"hu",
"is",
"it",
"ja",
"lt",
"lv",
"mk",
"nl",
"nl-be",
"no",
"pl",
"pt",
"pt-br",
"ru",
"sl",
"sv",
"th",
"tr"
]
}
vms vm logs – Viser den virtuelle maskines handlingslog
Viser handlingsloggen for en angivet virtuel maskine (opstart/nedlukning, snapshots, redigering, import/eksport osv.).
vms vm logs <id> --json [--limit N] [--desc]
--limitangiver antallet af returnerede poster, standard 50--descsorterer efter tid i faldende rækkefølge (aktiveret som standard)- Hver logpost indeholder tid, niveau, kategori, bruger og hændelsesbeskrivelse; hændelsesbeskrivelsen er fuld tekst
- Hændelsesbeskrivelsen (
event) udsendes lokaliseret af VMs-tjenesten i overensstemmelse med enhedens systemsprog; eksemplerne i dette dokument bruger engelsk
Eksempel på uddata:
[
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:44:09.176535374+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:43:10.597187659+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:40:32.74904922+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:55.916718004+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:43.341421576+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:31.518259486+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:07.98065689+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Error",
"time": "2026-09-02T11:32:35.01952111+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine (win10) export failed (Error:stat : no such file or directory)"
}
]
II. Strømstyring af virtuelle maskiner
vms vm poweron – Starter en virtuel maskine
vms vm poweron <id>
- Den virtuelle maskine skal være lukket ned, ellers returneres en tilstandskonfliktfejl
- Uddata:
VM powered on: <id>
vms vm poweroff – Lukker en virtuel maskine
Sender en anmodning om normal nedlukning til den virtuelle maskine, så systemet lukker ned korrekt.
vms vm poweroff <id> [--yes]
- Er en farlig handling: i interaktiv tilstand spørges der om bekræftelse, i ikke-interaktiv tilstand er
--yespåkrævet - Den virtuelle maskine skal være i drift, ellers returneres en tilstandskonfliktfejl
Bekræftelsesprompt i interaktiv tilstand:
This action will powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Uddata:
VM powered off: <id>
vms vm force-poweroff – Tvinger en virtuel maskine til at lukke (høj risiko)
Tvinger den virtuelle maskine til at lukke, hvilket svarer til at afbryde strømmen.
vms vm force-poweroff <id> [--yes]
- Er en højrisikohandling: i interaktiv tilstand spørges der om bekræftelse, i ikke-interaktiv tilstand er
--yespåkrævet - Kan føre til datatab i den virtuelle maskine; brug den kun, når den virtuelle maskine ikke reagerer
Bekræftelsesprompt i interaktiv tilstand:
This action will force powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Uddata:
VM force powered off: <id>
vms vm reboot – Genstarter en virtuel maskine
vms vm reboot <id>
- Uddata:
VM rebooted: <id>
vms vm pause – Sætter en virtuel maskine på pause
Fryser den virtuelle maskines driftstilstand og gemmer den aktuelle tilstand på disken.
vms vm pause <id>
- Den virtuelle maskine skal være i drift, ellers returneres en tilstandskonfliktfejl
- Efter pause vises den virtuelle maskines status som
saved - Uddata:
VM paused: <id>
vms vm resume – Genoptager en virtuel maskine
Genoptager en virtuel maskine fra pausetilstand til driftstilstand.
vms vm resume <id>
- Den virtuelle maskine skal være sat på pause, ellers returneres en tilstandskonfliktfejl
- Uddata:
VM resumed: <id>
vms vm autorun – Indstiller automatisk start ved opstart
Indstiller, om den virtuelle maskine automatisk skal starte, når værtsmaskinen starter.
vms vm autorun <id> <true|false>
- Den anden parameter skal være
trueellerfalse - Kommandoen læser den aktuelle konfiguration og ændrer kun kontakten for automatisk start; andre indstillinger påvirkes ikke
- Uddata:
Auto-start enabled for VM <id>ellerAuto-start disabled for VM <id>
III. Kopiering, eksport og sletning af virtuelle maskiner
vms vm clone – Kloner en virtuel maskine
Opretter en ny virtuel maskine ved at kopiere en eksisterende virtuel maskine som skabelon.
vms vm clone --body '{"guest_id":"<source_id>","name":"my-clone"}'
vms vm clone --file clone.json
- I anmodningsteksten er
guest_idkilde-maskinens ID, ogname(ellerguest_name) er navnet på den nye virtuelle maskine - Kilde-maskinen skal være lukket ned
--bodysender anmodningsteksten direkte som en JSON-streng,--filelæser anmodningsteksten fra en fil
vms vm export – Eksporterer en virtuel maskine
Eksporterer den virtuelle maskine som en OVA-fil, hvilket gør det nemt at tage backup eller migrere til andre virtualiseringsplatforme.
vms vm export --body '{"guest_id":"<source_id>","target_ova_path":"/Volume1/export/my-vm.ova"}'
vms vm export --file export.json
- I anmodningsteksten er
guest_idkilde-maskinens ID,target_ova_pather stien til målfilen, ogova_modeer den valgfrie VMware-kompatible tilstand - Kilde-maskinen skal være lukket ned
- Eksport er en tidskrævende opgave; virtuelle maskiner med stor kapacitet tager længere tid at eksportere
vms vm delete – Sletter en virtuel maskine (høj risiko)
Sletter den virtuelle maskine permanent.
vms vm delete <id> [--yes]
- Er en højrisikohandling: i interaktiv tilstand spørges der om bekræftelse, i ikke-interaktiv tilstand er
--yespåkrævet - Sletning kan ikke fortrydes; bekræft på forhånd, at data i den virtuelle maskine er sikkerhedskopieret
Bekræftelsesprompt i interaktiv tilstand:
This action will permanently delete VM "5a0391f2-c545-45eb-8eed-0a104972229b". Do you want to continue? [y/N]:
- Uddata:
VM deleted: <id>
IV. Virtuelle harddiske
vms vm disk list – Viser virtuelle harddiske
Viser alle virtuelle harddiske på en angivet virtuel maskine.
vms vm disk list <id> [--json]
Eksempel på uddata:
NAME VDISK ID VDISK SIZE VDISK MODE IDX
- f4ed4eae-1512-4273-963b-79ebd93a0932 1024 1 0
VDISK MODEer nummeret på den virtuelle harddiskkontrollertype;1betyder IDE- Virtuelle harddiske uden navn vises som
-i kolonnenNAME
V. Snapshot-administration
vms vm snapshot list – Viser snapshots
vms vm snapshot list <id> [--json]
Eksempel på uddata:
NAME GUEST ID DESCRIPTION LOCKED CREATED AT VM STATE ACTUAL CONSISTENCY
snapshot_2026-09-02T11-43-51.183703274 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 cli-test-edited false 2026-09-02T11:43:51+08:00 running crash
snapshot_2026-05-15T17-13-48.986448711 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 - false 2026-05-15T17:13:48+08:00 shutdown filesystem
VM STATEer den virtuelle maskines driftstilstand på tidspunktet, hvor snapshottet blev oprettetACTUAL CONSISTENCYer snapshottets konsistenstype;filesystembetyder filsystemkonsistent,crashbetyder crash-konsistent
vms vm snapshot create – Opretter et snapshot
Opretter et snapshot af den virtuelle maskine til hurtig tilbagerulning eller sikkerhedskopiering af den aktuelle tilstand.
vms vm snapshot create <id>
vms vm snapshot create <id> --body '{"description":"before-upgrade","locked":false}'
- Anmodningsteksten er valgfri:
descriptioner snapshottets beskrivelse,lockedangiver, om det er låst - Snapshottets navn genereres automatisk af systemet ud fra oprettelsestidspunktet
- Snapshots optager lagerplads; hvis de ikke ryddes op i længere tid, kan lagerpladsen blive fuld, så regelmæssig oprydning anbefales
vms vm snapshot edit – Redigerer et snapshot
Ændrer snapshottets beskrivelse eller låsetilstand.
vms vm snapshot edit <id> <snapshot_name> --body '{"description":"updated description"}'
vms vm snapshot edit <id> <snapshot_name> --body '{"locked":true}'
- Kun felter, der optræder i anmodningsteksten, ændres; felter, der ikke optræder, bevarer deres oprindelige værdi; ændring af kun beskrivelsen ændrer ikke låsetilstanden og omvendt
Eksempel på uddata:
PROPERTY VALUE
ACTUAL CONSISTENCY crash
CREATED AT 2026-09-02T11:43:51+08:00
DESCRIPTION cli-test-edited
GUEST ID 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1
LOCKED false
NAME snapshot_2026-09-02T11-43-51.183703274
VM STATE running
vms vm snapshot config – Viser den virtuelle maskinekonfiguration i et snapshot
Viser den virtuelle maskinekonfiguration, der er gemt i snapshottet.
vms vm snapshot config <id> <snapshot_name>
<id> er den virtuelle maskines ID, og <snapshot_name> er snapshottets navn, som kan hentes via vms vm snapshot list <id>.
Eksempel på uddata:
PROPERTY VALUE
CPU COMPATIBILITY MODE true
CPU PASSTHRU false
HYPERV ENLIGHTEN true
REPO NAME VM-Storage01
USB DEVICE NAME ["USB - Integrated Technology Express, Inc. Disk 2.0"]
USB VERSION 2
USBS [":3:3:048d:1234"]
VCPU NUM 4
VDISK NUM 1
VDISK TOTAL SIZE 1024
VDISKS [{"name":"disk1","type":"ide","vdisk_size":1024}]
VIDEO CARD vga
VRAM SIZE 2097152
vms vm snapshot consistency – Forhåndsviser snapshot-konsistens
Forhåndsviser den konsistenstype, der kan opnås, inden et snapshot oprettes, hvilket hjælper med at vurdere, om det aktuelle tidspunkt er egnet til at oprette et snapshot.
vms vm snapshot consistency <id>
Eksempel på uddata:
PROPERTY VALUE
CONSISTENCY TYPE filesystem
REASON vm_shutdown
VM STATE shutdown
Når den virtuelle maskine er lukket ned, kan der oprettes et filsystemkonsistent snapshot; i driftstilstand kan der normalt kun opnås et crash-konsistent snapshot.
VI. Fjernkonsol
vms vm link – Henter VNC-forbindelsesinformation
Henter forbindelsesinformation for den virtuelle maskines VNC-konsol, som bruges til at åbne fjernkonsollen i en browser.
vms vm link <id> --json
- Den virtuelle maskine skal være i drift eller sat på pause, ellers returneres en tilstandskonfliktfejl
Eksempel på uddata:
{
"url": "VMs/noVNC/vnc.html?autoconnect=true\u0026reconnect=true\u0026path=utils/websockify/?token=09fd98ee-4e2d-4c7a-a95c-8bacab80d322\u0026title=145",
"port": 8181,
"https": false
}
urler konsolstien relativ til NAS-administrationsadressen,porter konsoltjenestens port, oghttpsangiver, om der skal tilgås via HTTPS- I JSON-uddata escapes
&i URL'en som\u0026
VII. Administration af virtuelle netværk
Der findes to netværkstyper:
| Type | Beskrivelse |
|---|---|
| Privat (private) | Internt netværk kun til kommunikation mellem lokale virtuelle maskiner; bindes ikke til et fysisk netværkskort |
| Ekstern (external) | Netværk bundet til et fysisk netværkskort; virtuelle maskiner kan kommunikere eksternt via dette netværk |
vms network list – Viser virtuelle netværk
vms network list [--limit N] [--offset N] [--json]
Eksempel på uddata:
NAME NETWORK ID TYPE VLAN ID NUM GUESTS NUM HOSTS NUM INTERFACES HOST NAME
VM-Network04 ce9807c9-47b3-4258-9a80-ea8db1fd785d external 0 0 1 1 A-eae4
VM-Network01 b364a1ec-f60c-4971-9ea2-f7a002f09fa3 external 0 2 1 1 A-eae4
NUM GUESTSer antallet af virtuelle maskiner tilsluttet netværket, ogNUM INTERFACESer antallet af valgte fysiske netværkskort
vms network get – Viser detaljer for et virtuelt netværk
vms network get <network_id> --json
Eksempel på uddata:
{
"metadata": {
"createdAt": "2026-05-15T16:46:08.415062294+08:00",
"updatedAt": "2026-05-15T16:46:08.415062415+08:00"
},
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"name": "VM-Network01",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": false,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae5",
"interface_name": "LAN 2",
"ip": [
"192.168.2.121"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 0,
"rx_kbps": 0
},
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae4",
"interface_name": "LAN 1",
"ip": [
"10.18.8.95"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 2.5458984375,
"rx_kbps": 11.45458984375
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "external",
"vlan_id": 0
}
interfaceser oplysninger om de netværkskort, der er bundet til netværket, organiseret efter værts-ID;checkedangiver, om netværkskortet er valgtmetadataregistrerer netværkets oprettelses- og opdateringstidspunkter
vms network create – Opretter et virtuelt netværk
vms network create --body '{"name":"net1","type":"private","host_name":"TNAS"}' --json
vms network create --body '{"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}' --json
Oprettelse af et privat netværk:
- Anmodningsteksten skal indeholde
name,type(private) samthost_nameellerhost_idfor at angive, på hvilken vært netværket oprettes - Inden oprettelse kan tilgængelige værter vises via
vms network list-interfaces private
Oprettelse af et eksternt netværk:
- Anmodningsteksten skal indeholde
name,type(external) ogvlan_idsamt angive mindst ét fysisk netværkskort - Netværkskortet kan angives via
interface_name(f.eks.LAN 1) ellerinterface_id; hvis netværkskortets navn ikke er unikt på tværs af værter, skal det bruges sammen medhost_name - Inden oprettelse kan tilgængelige netværkskort vises via
vms network list-interfaces external
Uddata er oplysningerne om det oprettede netværk og har samme struktur som vms network get:
{
"metadata": {
"createdAt": "2026-09-17T16:57:32.064720576+08:00",
"updatedAt": "2026-09-17T16:57:32.064720634+08:00"
},
"network_id": "27047bd1-eeeb-4762-82ae-45094dea4854",
"name": "cli-demo-net",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "",
"interface_name": "PNdea4854",
"ip": null,
"mask": null,
"speed_mbs": 0,
"status": ""
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "private",
"vlan_id": 0
}
Hvis der ikke angives et netværkskort, giver kommandoen et hint:
network create (type "external") requires selecting at least one interface; add "interface_name" (optionally scoped with "host_name") or "interface_id" to the body, e.g. {"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}. Run "vms network list-interfaces external" to see available interfaces. Example available interface: LAN 2 on A-eae4 (host_id=15341593-7f43-49f4-9523-6ac750a63a8a, interface_id=/00000000-0000-0000-0000-6cbfb504eae5)
vms network update – Opdaterer et virtuelt netværk
Kun felter, der skal ændres, indsendes; felter, der ikke indsendes, bevarer deres oprindelige værdi.
vms network update --body '{"network_id":"<network_id>","name":"renamed"}'
vms network update --body '{"network_id":"<network_id>","vlan_id":200}'
- Anmodningsteksten skal indeholde
network_id - Kommandoen læser først den aktuelle netværkskonfiguration og fletter de indsendte felter ind; netværksnavnet og de valgte netværkskort ryddes ikke
- Uddata er oplysningerne om det opdaterede netværk
vms network delete – Sletter et virtuelt netværk (høj risiko)
vms network delete <network_id> [--yes]
- Er en højrisikohandling: i interaktiv tilstand spørges der om bekræftelse, i ikke-interaktiv tilstand er
--yespåkrævet - Sletning af netværket afbryder forbindelsen for alle virtuelle maskiner, der er tilsluttet netværket
- Det anbefales først at bekræfte de tilsluttede virtuelle maskiner via
vms network list-vnics <network_id>
Bekræftelsesprompt i interaktiv tilstand:
This action will delete network "b364a1ec-f60c-4971-9ea2-f7a002f09fa3". Do you want to continue? [y/N]:
- Uddata:
Network deleted: <network_id>
vms network list-interfaces – Viser netværksgrænseflader
Viser netværksgrænseflader af en angivet type.
vms network list-interfaces external [--limit N] [--offset N]
vms network list-interfaces private [--limit N] [--offset N]
externalreturnerer tilgængelige fysiske netværkskort på værtenprivatereturnerer værtinformation, der kan bruges til at oprette et privat netværk
Eksempel på uddata (external):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
LAN 2 /00000000-0000-0000-0000-6cbfb504eae5 A-eae4 disconnected - -1
LAN 1 /00000000-0000-0000-0000-6cbfb504eae4 A-eae4 connected ["10.18.8.73"] 1000
Eksempel på uddata (private):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
- - A-eae4 - - 0
vms network list-vnics – Viser virtuelle netværkskort på netværket
vms network list-vnics <network_id> [--limit N] [--offset N] [--json]
Eksempel på uddata:
GUEST NAME GUEST ID MAC ADDRESS VIRTUAL INTERFACE ID NETWORK NAME STATUS PREFER SRIOV
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 1a:e2:ae:95:4a:51 fe972ef5-b066-4967-89fa-8e85e43c8808 VM-Network01 - false
win101 32ee5a74-de8b-47a9-959d-1725c881ceab 1a:f6:db:fb:3d:79 f93bf16c-01ca-4b60-b164-8a3083fb5f03 VM-Network01 - false
vms network ovsinfo – Viser OVS-status
Bekræfter, om den virtuelle switch Open vSwitch er aktiveret.
vms network ovsinfo [--json]
Eksempel på uddata:
PROPERTY VALUE
RESULT true
VALUE = true betyder, at OVS er aktiveret.
VIII. Image-administration
vms image list – Viser images
Viser systemimagefiler, der kan bruges til at oprette virtuelle maskiner.
vms image list --json
image_nameer imagenavnet, ogfile_nameer det tilsvarende filnavntypeer imageformatet, f.eks.iso,qcow2statuser imagestatus;availablebetyder tilgængeligreposer den lagerplads, hvor imaget liggerprogresser fremdriften for imagebehandlingsopgaven;0betyder, at der ikke er nogen igangværende opgave
Eksempel på uddata:
{
"totalCount": 4,
"items": [
{
"image_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"image_id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"file_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f.iso",
"type": "iso",
"file_size": 3884539904,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"image_id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"file_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf.iso",
"type": "iso",
"file_size": 5858816000,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "virtio-win-0.1.285pro",
"image_id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"file_name": "virtio-win-0.1.285.iso",
"type": "iso",
"file_size": 789645312,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778836128,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "haos_ova-18.2",
"image_id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"file_name": "haos_ova-18.2.qcow2",
"type": "qcow2",
"file_size": 1091698688,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1787191833,
"repos": [
{
"repo_name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
}
]
}
vms image edit – Redigerer et image
Ændrer imagenavnet eller justerer den lagerplads, hvor imaget ligger.
vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id>"]}'
vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id_1>","<repo_id_2>"],"image_name":"renamed.iso"}'
- Anmodningsteksten skal indeholde
image_idogrepos;reposer den komplette liste over mållagerpladser for imaget og må ikke være tom image_name,file_name,typeogfile_sizeer valgfrie felter; hvis de ikke angives, bruges de aktuelle værdier- Et tomt
reposvil flytte imaget ud af alle lagerpladser; kommandoen afviser anmodningen, før den udføres - Uddata:
Image updated
vms image delete – Sletter et image (høj risiko)
vms image delete --image-id <image_id> [--yes]
--image-ider påkrævet- Er en højrisikohandling: i interaktiv tilstand spørges der om bekræftelse, i ikke-interaktiv tilstand er
--yespåkrævet - Sletning af imaget påvirker ikke allerede oprettede virtuelle maskiner, men påvirker fremtidig oprettelse af virtuelle maskiner baseret på imaget
- Det anbefales først at bekræfte brugen via
vms image list-vms --image-id <image_id>
Bekræftelsesprompt i interaktiv tilstand:
This action will permanently delete image "efd6da18-9475-44cf-8fb0-e2513421e68a". Do you want to continue? [y/N]:
- Uddata:
Image deleted: <image_id>
vms image list-vms – Viser virtuelle maskiner, der bruger dette image
vms image list-vms --image-id <image_id> [--json]
Eksempel på uddata:
GUEST NAME
1454486
Inden et image slettes, kan denne kommando køres for at bekræfte omfanget; hvis ingen virtuelle maskiner bruger imaget, er uddata tom.
IX. Lagerpladsadministration
vms repo list – Viser lagerpladser
vms repo list [--json]
Eksempel på uddata:
NAME REPO ID STATUS USED PERCENT USED TOTAL SIZE FILE SYSTEM HOST NAME
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 - 155583651840 14.150249481201172 1097552691200 btrfs -
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 normal 89361494016 16.64487648010254 535146790912 btrfs A-eae4
vms repo get – Viser detaljer for en lagerplads
vms repo get <repo_id> [--json]
Eksempel på uddata:
PROPERTY VALUE
ENABLE LOWER NOTIFY false
FILE SYSTEM btrfs
HARD LIMIT 2
HOST ID 15341593-7f43-49f4-9523-6ac750a63a8a
HOST NAME A-eae4
LAST NOTIFY TRESHOLD -
LOCATION VOLUME /Volume2
NAME VM-Storage02
REPO ID 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78
SOFT LIMIT 10
STATUS normal
TOTAL SIZE 534760128512
LOCATION VOLUMEer det volumen, hvor lagerpladsen liggerSOFT LIMITogHARD LIMITer tærskler for kapacitetsadvarsler (i procent)ENABLE LOWER NOTIFYangiver, om påmindelse om lav kapacitet er aktiveret
vms repo update – Opdaterer en lagerplads
Kun felter, der skal ændres, indsendes; felter, der ikke indsendes, bevarer deres oprindelige værdi.
vms repo update --body '{"repo_id":"<repo_id>","name":"new-name"}'
vms repo update --body '{"repoId":"<repo_id>","enable_lower_notify":true}'
- Lagerpladsens ID kan angives via
repo_idellerrepoId - Kommandoen læser først den aktuelle konfiguration og fletter de indsendte felter ind; andre indstillinger går ikke tabt
- Uddata er oplysningerne om den opdaterede lagerplads
vms repo delete – Sletter en lagerplads (høj risiko)
vms repo delete <repo_id> <true|false> [--yes]
- Den anden parameter er
need_save_data:truebetyder, at datafilerne på disken bevares,falsebetyder, at de slettes sammen med dataene - Er en højrisikohandling: i interaktiv tilstand spørges der om bekræftelse, i ikke-interaktiv tilstand er
--yespåkrævet - Sletning af lagerpladsen fjerner også de virtuelle maskiner og images, der ligger i den; det anbefales først at køre
vms repo check-runningogvms repo whether-exist-datafor at bekræfte omfanget
Bekræftelsesprompt i interaktiv tilstand:
This action will delete repository "735ef7f7-5d8d-4102-9377-8a7b8c33cda6" (save data: true). Do you want to continue? [y/N]:
- Uddata:
Repository deleted: <repo_id>
vms repo list-volumes – Viser tilgængelige volumener
Viser volumener, der kan bruges til at oprette en lagerplads.
vms repo list-volumes [--json]
Eksempel på uddata:
NAME UUID DEVICE FILESYSTEM STATUS VOLUME TYPE TOTAL USED AVAILABLE USAGE
lv3 00000004-2608-1311-3025-6cbfb504eae4 /dev/mapper/vg0-lv3 ext4 - - {"unit":"KB","value":102626232} {"unit":"KB","value":52} {"unit":"KB","value":101561220} 0.000051200619070623694
lv2 00000003-2606-2215-3256-6cbfb504eae4 /dev/mapper/vg0-lv2 btrfs - - {"unit":"KB","value":104857600} {"unit":"KB","value":9715824} {"unit":"KB","value":93096464} 9.450061066630479
vms repo list-vms – Viser virtuelle maskiner i en lagerplads
vms repo list-vms --body '{"repo_id":"<repo_id>"}'
- Lagerpladsens ID kan angives via
repo_idellerrepoId - Kommandoen henter først lagerpladsobjektet og forespørger derefter dets virtuelle maskiner, hvilket giver mere pålidelige resultater
vms repo check-running – Kontrollerer virtuelle maskiner, der kører på lagerpladsen
vms repo check-running <repo_id> [--json]
Køres inden sletning af en lagerplads for at bekræfte, at ingen virtuelle maskiner kører; hvis ingen virtuelle maskiner kører, er uddata tom.
vms repo whether-exist-data – Kontrollerer, om der findes data i lagerpladsen
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
Køres inden sletning af en lagerplads for at bekræfte, om der stadig findes data i lagerpladsen; svarer til forhåndskontrollen inden sletning af en lagerplads i webgrænsefladen.
X. Globale indstillinger
vms setting get – Viser globale indstillinger
Viser den globale konfiguration for VMs-applikationen.
vms setting get [--json]
Eksempel på uddata:
PROPERTY VALUE
HOST SHUTDOWN BEHAVIOR 1
KB LAYOUT en-us
SHOW VIRTIO BLK VDISK false
HOST SHUTDOWN BEHAVIORer måden, virtuelle maskiner håndteres på, når værtsmaskinen lukker nedKB LAYOUTer den virtuelle maskines tastaturlayout
XI. Forespørgsel om overvågningsinformation
vms collectd hostinfo – Viser værtsmaskinens overvågningsinformation
vms collectd hostinfo [--limit N] [--offset N] [--json]
Eksempel på uddata:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
A-eae4 - running healthy 2.53 15.66 Info
vms collectd vminfo – Viser den virtuelle maskines overvågningsinformation
vms collectd vminfo [--limit N] [--offset N] [--json]
Eksempel på uddata:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown healthy 0 0 info
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown healthy 0 0 info
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown healthy 0 0 info
vms collectd storageinfo – Viser lagerovervågningsinformation
vms collectd storageinfo [--limit N] [--offset N] [--json]
Eksempel på uddata:
NAME ID HOST NAME STATUS TYPE SIZE USED PERCENT USED PERCENT FREE
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 A-eae4 none healthy 1097552691200 155583651840 14.328414916992188 85.67158508300781
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 A-eae4 none healthy 535146790912 89361494016 16.966018676757812 83.03398132324219
Interaktiv og ikke-interaktiv tilstand
CLI afgør, om den aktuelt kører i et terminalmiljø, og anvender forskellig adfærd:
Interaktiv tilstand (terminalmiljø)
- Farlige handlinger viser en bekræftelsesprompt med No som standardvalg
- Skriv
yellerYfor at fortsætte, skrivneller tryk Enter for at annullere - Ved annullering udsendes
Operation cancelled, og exitkoden er 99
Ikke-interaktiv tilstand (script/automatisering)
- Farlige handlinger skal bruge
--yesfor at springe bekræftelsen over; ellers fejler kommandoen og returnerer exitkode 1 - Uden terminalmiljø ventes der ikke på input, hvilket er velegnet til scripts og planlagte opgaver
- Det anbefales at håndtere exitkoder eksplicit i scripts for at skelne mellem succes, fejl og tilstandskonflikt
JSON-uddataformat
Forespørgselskommandoer understøtter parameteren --json, som udsender standardiserede JSON-data, der er nemme for programmer at parse.
Formatkonventioner:
- Feltnavne bruger snake_case
- Booleske værdier er true/false
- Tid bruger ISO 8601-format med nanosekundpræcision og offset for UTC+8 (f.eks. 2026-09-02T11:43:51.176535374+08:00)
- JSON udsendes til stdout, fejlmeddelelser til stderr
- Lange felter, der afkortes i tabeluddata, er komplette værdier i JSON-uddata
Eksempel:
vms setting get --json
{
"host_shutdown_behavior": 1,
"kb_layout": "en-us",
"show_virtio_blk_vdisk": false
}
JSON-strukturen varierer en smule mellem kommandoer: vms vm list, vms vm snapshot list og vms vm logs udsender et array direkte; andre liste-kommandoer udsender et objekt med totalCount og et datafelt, hvor datafeltets navn varierer efter ressourcen (f.eks. items, hosts, vms, storage). F.eks. vms repo list --json:
{
"totalCount": 2,
"items": {
"517571ba-f7f7-49e1-9a62-7eb6ddfd9c78": {
"name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"status": "normal",
"used": 89361494016,
"percent_used": 16.64487648010254,
"location_volume": "/Volume2",
"total_size": 535146790912,
"hard_limit": 2,
"soft_limit": 10,
"enable_lower_notify": false,
"file_system": "btrfs"
}
}
}
Nogle kommandoers JSON-uddata er simple værdier; f.eks. udsender vms network ovsinfo --json true, og vms vm pause --json udsender null.
Forklaring af exitkoder
| Exitkode | Betydning | Typisk scenarie |
|---|---|---|
| 0 | Succes | Kommandoen blev fuldført normalt |
| 1 | Parameterfejl | Manglende påkrævede parametre, forkert parameterformat eller manglende --yes |
| 3 | Ressource findes ikke | Kommandoens forudgående validering mislykkedes, f.eks. findes det angivne image ikke |
| 4 | Tilstandskonflikt | Den virtuelle maskines aktuelle tilstand tillader ikke handlingen (f.eks. nedlukning af en allerede lukket virtuel maskine) |
| 6 | Forbindelsesfejl | Kan ikke oprette forbindelse til VMs-tjenesten, eller socket-stien er forkert |
| 7 | Timeout | Anmodningen fik timeout; kan justeres via --timeout |
| 9 | Udførelsesfejl | Backenden returnerer en fejl (fejlmeddelelsen indeholder code_num og en fejlbeskrivelse) |
| 99 | Brugeren annullerede | Valg af No eller tryk på Enter ved interaktiv bekræftelse |
Eksempel:
# 退出码 1(参数错误)
vms vm poweroff <id>
# Confirmation required. Re-run with --yes to continue.
# 退出码 4(状态冲突)
vms vm pause <id>
# cannot pause a virtual machine: VM must be running (current status: shutdown)
# 退出码 9(执行错误)
vms vm get <id>
# vm check configure error: vdisk check - vm not exist: key not found (code_num=2001, vm check configure error)
# 退出码 6(连接错误)
vms vm list --socket /tmp/nope.sock
# failed to connect to VMs daemon (socket /tmp/nope.sock): dial unix /tmp/nope.sock: connect: no such file or directory
Eksempler på anvendelsesscenarier
Daglig drift
# 查看所有虚拟机状态
vms vm list
# 查看某台虚拟机的配置与运行状态
vms vm get <id>
# 查看虚拟机的操作日志
vms vm logs <id> --limit 20
# 开机、关机与重启
vms vm poweron <id>
vms vm poweroff <id> --yes
vms vm reboot <id>
Batch-operationer i scripts
# 批量启动所有已关机的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "shutdown") | .guest_id' | while read -r id; do
vms vm poweron "$id"
done
# 批量关闭所有运行中的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "running") | .guest_id' | while read -r id; do
vms vm poweroff "$id" --yes
done
# 存储空间容量检查,超过 80% 时输出告警
vms collectd storageinfo --json | jq -r '.storage[] | select(.percent_used > 80) | .name'
Backup og inspektion
# 关机后为虚拟机创建快照
vms vm poweroff <id> --yes
vms vm snapshot consistency <id>
vms vm snapshot create <id> --body '{"description":"weekly-backup"}'
# 查看快照列表与详情
vms vm snapshot list <id>
vms vm snapshot config <id> <snapshot_name>
# 导出虚拟机为 OVA 文件,用于异地备份
vms vm export --body '{"guest_id":"<id>","target_ova_path":"/Volume1/backup/my-vm.ova"}'
Kontrol inden sletning
# 删除存储空间前,先确认是否有虚拟机正在运行、是否存在数据
vms repo check-running <repo_id>
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
# 删除映像前,先确认有哪些虚拟机在使用
vms image list-vms --image-id <image_id>
# 删除网络前,先确认接入的虚拟机
vms network list-vnics <network_id>
Kald fra AI-værktøjer
# AI 工具可通过命令行调用 vms 命令
# 例如:获取虚拟机与宿主机状态供 AI 分析
vms vm list --json
vms collectd hostinfo --json
# AI 可解析 JSON 输出并作出决策
vms vm list-resource --json
Intern udvikling og systemintegration
# 开发人员可通过 CLI 封装内部运维工具
# 示例:封装虚拟机健康检查函数
check_vm_health() {
vms collectd vminfo --json | jq -r '.vms[] | select(.status != "running") | .name'
}
# 将 CLI 集成到内部监控平台
vms collectd storageinfo --json | curl -X POST https://monitor.example.com/api/report -d @-
Ofte stillede spørgsmål
Q: Kræver CLI yderligere installation?
Nej. CLI installeres sammen med VMs-applikationen, og efter aktivering af applikationen kan du bruge den ved blot at køre kommandoen vms.
Q: Skal CLI bruges via SSH?
Nej. CLI kan kaldes fra enhver kommandolinjeterminal, herunder lokal terminal, ekstern SSH, scripts, AI-værktøjer osv.
Q: Kan CLI administrere virtuelle maskiner på andre enheder?
Nej. CLI kommunikerer med VMs-tjenesten via en lokal unix socket og bruges kun til at administrere virtuelle maskiner på den lokale maskine.
Q: Hvorfor beder nogle kommandoer om bekræftelse, mens andre ikke gør?
Handlinger som at slette virtuelle maskiner, slette netværk, slette images, slette lagerpladser samt nedlukning (poweroff, force-poweroff) påvirker data eller tjenester og kræver derfor som standard bekræftelse; start-, genstart-, pause-, genoptagelses- og forespørgselskommandoer har ingen sådanne begrænsninger.
Q: Hvordan bekræfter man farlige handlinger i ikke-interaktiv tilstand?
Alle farlige handlinger skal tilføjes parameteren --yes; ellers fejler kommandoen og afsluttes (exitkode 1).
Q: Hvordan afgør man i et script, om en kommando lykkedes?
Bedøm ud fra exitkoden: 0 betyder succes, og alt andet end 0 betyder fejl. Du kan også parse indholdet af --json-uddata.
Q: Hvorfor er listen i --json-uddata et objekt?
Nogle kommandoers JSON-uddata organiseres som et objekt efter ID og ledsages af feltet totalCount, hvilket gør det nemt at hente direkte efter ID.
Yderligere hjælp
Hver kommando understøtter --help for at se detaljeret brug:
vms --help
vms vm --help
vms vm poweroff --help
vms network create --help