VMs CLI
Introduksjon
VMs CLI er et kommandolinjeverktøy for TerraMaster VMs-virtualiseringsapplikasjonen og tilbyr de samme søke- og driftsfunksjonene som nettgrensesnittet. CLI kommuniserer med VMs-tjenesten via en lokal unix socket og bruker et standardisert kommandogrensesnitt og JSON-utdataformat, noe som gjør det enkelt å integrere i skript, automatisert drift og videreutvikling.
Hovedfunksjoner
- Klar til bruk: installeres sammen med VMs-applikasjonen, ingen ekstra installasjon nødvendig
- Fleksibel bruk: støtter lokale terminaler, ekstern SSH, skript, AI-verktøy og andre måter å kalle den på
- Interaktiv og ikke-interaktiv modus: passer både for administratorers daglige vedlikehold og for skript og automatiserte oppgaver
- JSON-utdata: enkelt for programmer å tolke og integrere i automatisering
- Lokal kommunikasjon: kommuniserer kun med VMs-tjenesten via en lokal unix socket og åpner ingen porter eksternt
- Bekreftelse av farlige handlinger: handlinger som å slette virtuelle maskiner eller nettverk krever som standard bekreftelse
Kom i gang
# 在终端中执行(可通过本地终端、SSH、脚本、AI 工具等任意命令行途径)
vms --help
# 查看虚拟机列表
vms vm list
# 查看虚拟机详情
vms vm get <id>
# 以 JSON 格式输出(便于脚本解析)
vms vm list --json
Eksempel på utdata 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 alternativer
Følgende alternativer gjelder for alle kommandoer:
| Alternativ | Forkortelse | Beskrivelse |
|---|---|---|
--help | -h | Viser hjelpeinformasjon for kommandoen |
--version | -v | Viser versjonsnummer (kan kombineres med --json for strukturerte data) |
--json | - | Utdata i JSON-format |
--yes | -y | Hopper over bekreftelse ved farlige handlinger (påkrevd i ikke-interaktiv modus) |
--debug | - | Aktiverer feilsøkingsutdata med detaljert utførelsesforløp |
--socket <path> | - | Sti til VMs unix socket, standard /var/api/VMs.sock |
--timeout <duration> | - | Tidsavbrudd for forespørsel, standard 30s |
Eksempel på versjonsinformasjon
vms --version
vms CLI v1.0.058
vms --version --json
{
"build": "20260911",
"cli_version": "v1.0.058"
}
Driftsmiljø
VMs CLI installeres sammen med VMs-applikasjonen. Når applikasjonen aktiveres, lenkes CLI til systemets standard PATH-mappe, og den kan brukes direkte etter SSH-pålogging.
| Element | Beskrivelse |
|---|---|
| CLI-fil | /Volume1/@apps/VMs/bin/vms |
| Kommandosti | /usr/local/sbin/vms (allerede i systemets PATH) |
| Kommunikasjonsmetode | Lokal unix socket, standard /var/api/VMs.sock |
| Målgruppe | Administratorer pålogget den lokale maskinen |
Merk:
- CLI brukes til å administrere virtuelle maskiner på den lokale maskinen og støtter ikke fjernadministrasjon av andre enheter via CLI.
- Backenden returnerer alltid HTTP 200; hvorvidt kommandoen lyktes, avgjøres av feltet
codei svarteksten, som CLI konverterer til en utkode. - Farlige handlinger (slett virtuell maskin, slett nettverk, slett image, slett lagringsplass) ber om bekreftelse i interaktiv modus og krever eksplisitt
--yesi ikke-interaktiv modus.
Kommandooversikt
Her følger en hurtigreferanseoversikt over alle vms-kommandoer:
| Overordnet kommando | Underkommando | Funksjonsbeskrivelse | Bekreftelse | Høy risiko |
|---|---|---|---|---|
| vms | --version | Viser versjonsinformasjon | Nei | Nei |
| vms vm | list | Viser alle virtuelle maskiner | Nei | Nei |
| vms vm | get | Viser detaljer for en angitt virtuell maskin | Nei | Nei |
| vms vm | list-resource | Viser ressurser som er tilgjengelige ved oppretting av virtuelle maskiner | Nei | Nei |
| vms vm | logs | Viser den virtuelle maskinens handlingslogg | Nei | Nei |
| vms vm | poweron | Starter den virtuelle maskinen | Nei | Nei |
| vms vm | poweroff | Slår av den virtuelle maskinen (normal avslutning) | Ja | Nei |
| vms vm | force-poweroff | Tvinger den virtuelle maskinen til å slå seg av | Ja | ✅ |
| vms vm | reboot | Starter den virtuelle maskinen på nytt | Nei | Nei |
| vms vm | pause | Setter den virtuelle maskinen på pause | Nei | Nei |
| vms vm | resume | Gjenopptar en virtuell maskin som er satt på pause | Nei | Nei |
| vms vm | autorun | Angir automatisk start ved oppstart | Nei | Nei |
| vms vm | clone | Kloner den virtuelle maskinen | Nei | Nei |
| vms vm | export | Eksporterer den virtuelle maskinen som OVA-fil | Nei | Nei |
| vms vm | delete | Sletter den virtuelle maskinen | Ja | ✅ |
| vms vm disk | list | Viser den virtuelle maskinens virtuelle harddisker | Nei | Nei |
| vms vm snapshot | list | Viser den virtuelle maskinens snapshots | Nei | Nei |
| vms vm snapshot | create | Oppretter et snapshot | Nei | Nei |
| vms vm snapshot | edit | Redigerer snapshottets beskrivelse og låsetilstand | Nei | Nei |
| vms vm snapshot | config | Viser den virtuelle maskinkonfigurasjonen som er lagret i snapshottet | Nei | Nei |
| vms vm snapshot | consistency | Forhåndsviser snapshot-konsistens | Nei | Nei |
| vms vm | link | Henter tilkoblingsinformasjon for VNC-konsollen | Nei | Nei |
| vms network | list | Viser virtuelle nettverk | Nei | Nei |
| vms network | get | Viser detaljer for et virtuelt nettverk | Nei | Nei |
| vms network | create | Oppretter et virtuelt nettverk | Nei | Nei |
| vms network | update | Oppdaterer et virtuelt nettverk | Nei | Nei |
| vms network | delete | Sletter et virtuelt nettverk | Ja | ✅ |
| vms network | list-interfaces | Viser nettverksgrensesnitt av en angitt type | Nei | Nei |
| vms network | list-vnics | Viser virtuelle nettverkskort på nettverket | Nei | Nei |
| vms network | ovsinfo | Viser om OVS er aktivert | Nei | Nei |
| vms image | list | Viser images | Nei | Nei |
| vms image | edit | Redigerer image-informasjon | Nei | Nei |
| vms image | delete | Sletter et image | Ja | ✅ |
| vms image | list-vms | Viser virtuelle maskiner som bruker dette imaget | Nei | Nei |
| vms repo | list | Viser lagringsplasser | Nei | Nei |
| vms repo | get | Viser detaljer for en lagringsplass | Nei | Nei |
| vms repo | update | Oppdaterer lagringsplasskonfigurasjonen | Nei | Nei |
| vms repo | delete | Sletter en lagringsplass | Ja | ✅ |
| vms repo | list-volumes | Viser tilgjengelige volumer | Nei | Nei |
| vms repo | list-vms | Viser virtuelle maskiner i lagringsplassen | Nei | Nei |
| vms repo | check-running | Kontrollerer virtuelle maskiner som kjører på lagringsplassen | Nei | Nei |
| vms repo | whether-exist-data | Kontrollerer om det finnes data i lagringsplassen | Nei | Nei |
| vms setting | get | Viser globale innstillinger | Nei | Nei |
| vms collectd | hostinfo | Viser vertsmaskinens overvåkingsinformasjon | Nei | Nei |
| vms collectd | vminfo | Viser den virtuelle maskinens overvåkingsinformasjon | Nei | Nei |
| vms collectd | storageinfo | Viser lagringsovervåkingsinformasjon | Nei | Nei |
Kommandoreferanse
<id> i kommandoene er den virtuelle maskinens ID og tilsvarer GUEST ID i utdata fra listen over virtuelle maskiner; det samme gjelder <network_id>, <image_id> og <repo_id>, som kan hentes via henholdsvis vms network list, vms image list og vms repo list.
Om utdataeksempler:
vms' tabellutdata avkorter for lange feltverdier til en fast bredde (avsluttet med ellipse og uavhengig av terminalbredden), for eksempelVDISKS,VNICSogISO IMAGESi den virtuelle maskinkonfigurasjonen, samt imagenavn. Derfor gis det i dette dokumentet komplette--json-utdataeksempler for kommandoer med lange felt, mens de øvrige kommandoene gis tabellutdataeksempler. Ved skriptbehandling anbefales det også å bruke--jsonkonsekvent.
I. Spørring om virtuelle maskiner
vms vm list – Viser virtuelle maskiner
Viser alle virtuelle maskiner på den lokale maskinen og deres grunnleggende status.
vms vm list [--limit N] [--offset N] [--json]
--limitog--offseter pagineringsparametere- Utdatakolonner: navn, virtuell maskin-ID, driftstilstand, antall CPU-kjerner, minnestørrelse (i KB), IP-adresse
Eksempel på utdata:
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 -
Vanlige verdier for STATUS:
| Status | Beskrivelse |
|---|---|
| running | Kjører |
| shutdown | Slått av |
| saved | Satt på pause (driftstilstanden er lagret på disken) |
vms vm get – Viser detaljer for en virtuell maskin
Viser fullstendig konfigurasjon og driftstilstand for en angitt virtuell maskin.
vms vm get <id> --json
- Utdata inneholder alle konfigurasjons- og driftstilstandsfelter for den virtuelle maskinen
- Tomme verdier som ingen beskrivelse eller ingen IP vises som en tom streng
- Hvis den virtuelle maskinen ikke finnes, returnerer kommandoen en feil og skriver ut en feilmelding
Eksempel på utdata:
{
"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 tilgjengelige ressurser for oppretting av virtuelle maskiner
Viser ressursene vertsmaskinen kan tilby, som fastvaretyper, images, CPU, minne, nettverk, lagringsplass og enheter som kan sendes direkte gjennom (passthrough), til vurdering før oppretting av en virtuell maskin.
vms vm list-resource --json
Returnerte felter: max_cpu_num, max_ram_size, usbs, pci_devices, networks, repos, images, video_cards, firmware, keyboard_layout.
Eksempel på utdata:
{
"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 maskinens handlingslogg
Viser handlingsloggen for en angitt virtuell maskin (oppstart/avslutning, snapshots, redigering, import/eksport osv.).
vms vm logs <id> --json [--limit N] [--desc]
--limitangir antall returnerte oppføringer, standard 50--descsorterer etter tid i synkende rekkefølge (aktivert som standard)- Hver loggoppføring inneholder tid, nivå, kategori, bruker og hendelsesbeskrivelse; hendelsesbeskrivelsen er fullstendig tekst
- Hendelsesbeskrivelsen (
event) sendes ut lokalisert av VMs-tjenesten i samsvar med enhetens systemspråk; eksemplene i dette dokumentet bruker engelsk
Eksempel på utdata:
[
{
"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 av virtuelle maskiner
vms vm poweron – Starter en virtuell maskin
vms vm poweron <id>
- Den virtuelle maskinen må være slått av, ellers returneres en tilstandskonfliktfeil
- Utdata:
VM powered on: <id>
vms vm poweroff – Slår av en virtuell maskin
Sender en anmodning om normal avslutning til den virtuelle maskinen, slik at systemet slås av på en skånsom måte.
vms vm poweroff <id> [--yes]
- Er en farlig handling: i interaktiv modus spørres det om bekreftelse, i ikke-interaktiv modus er
--yespåkrevd - Den virtuelle maskinen må være i drift, ellers returneres en tilstandskonfliktfeil
Bekreftelsesmelding i interaktiv modus:
This action will powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Utdata:
VM powered off: <id>
vms vm force-poweroff – Tvinger en virtuell maskin til å slå seg av (høy risiko)
Tvinger den virtuelle maskinen til å slå seg av, tilsvarende å bryte strømmen.
vms vm force-poweroff <id> [--yes]
- Er en høyrisikohandling: i interaktiv modus spørres det om bekreftelse, i ikke-interaktiv modus er
--yespåkrevd - Kan føre til tap av data i den virtuelle maskinen; bruk den bare når den virtuelle maskinen ikke svarer
Bekreftelsesmelding i interaktiv modus:
This action will force powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Utdata:
VM force powered off: <id>
vms vm reboot – Starter en virtuell maskin på nytt
vms vm reboot <id>
- Utdata:
VM rebooted: <id>
vms vm pause – Setter en virtuell maskin på pause
Fryser den virtuelle maskinens driftstilstand og lagrer den gjeldende tilstanden på disken.
vms vm pause <id>
- Den virtuelle maskinen må være i drift, ellers returneres en tilstandskonfliktfeil
- Etter pause vises den virtuelle maskinens status som
saved - Utdata:
VM paused: <id>
vms vm resume – Gjenopptar en virtuell maskin
Gjenopptar en virtuell maskin fra pausetilstand til driftstilstand.
vms vm resume <id>
- Den virtuelle maskinen må være satt på pause, ellers returneres en tilstandskonfliktfeil
- Utdata:
VM resumed: <id>
vms vm autorun – Angir automatisk start ved oppstart
Angir hvorvidt den virtuelle maskinen skal starte automatisk når vertsmaskinen starter.
vms vm autorun <id> <true|false>
- Den andre parameteren må være
trueellerfalse - Kommandoen leser gjeldende konfigurasjon og endrer bare bryteren for automatisk start; andre innstillinger påvirkes ikke
- Utdata:
Auto-start enabled for VM <id>ellerAuto-start disabled for VM <id>
III. Kopiering, eksport og sletting av virtuelle maskiner
vms vm clone – Kloner en virtuell maskin
Oppretter en ny virtuell maskin ved å kopiere en eksisterende virtuell maskin som mal.
vms vm clone --body '{"guest_id":"<source_id>","name":"my-clone"}'
vms vm clone --file clone.json
- I forespørselsteksten er
guest_idkilde-maskinens ID, ogname(ellerguest_name) er navnet på den nye virtuelle maskinen - Kilde-maskinen må være slått av
--bodysender forespørselsteksten direkte som en JSON-streng,--fileleser forespørselsteksten fra en fil
vms vm export – Eksporterer en virtuell maskin
Eksporterer den virtuelle maskinen som en OVA-fil, noe som gjør det enkelt å ta sikkerhetskopi eller migrere til andre virtualiseringsplattformer.
vms vm export --body '{"guest_id":"<source_id>","target_ova_path":"/Volume1/export/my-vm.ova"}'
vms vm export --file export.json
- I forespørselsteksten er
guest_idkilde-maskinens ID,target_ova_pather stien til målfilen, ogova_modeer den valgfrie VMware-kompatible modusen - Kilde-maskinen må være slått av
- Eksport er en tidkrevende oppgave; virtuelle maskiner med stor kapasitet tar lengre tid å eksportere
vms vm delete – Sletter en virtuell maskin (høy risiko)
Sletter den virtuelle maskinen permanent.
vms vm delete <id> [--yes]
- Er en høyrisikohandling: i interaktiv modus spørres det om bekreftelse, i ikke-interaktiv modus er
--yespåkrevd - Sletting kan ikke angres; bekreft på forhånd at dataene i den virtuelle maskinen er sikkerhetskopiert
Bekreftelsesmelding i interaktiv modus:
This action will permanently delete VM "5a0391f2-c545-45eb-8eed-0a104972229b". Do you want to continue? [y/N]:
- Utdata:
VM deleted: <id>
IV. Virtuelle harddisker
vms vm disk list – Viser virtuelle harddisker
Viser alle virtuelle harddisker på en angitt virtuell maskin.
vms vm disk list <id> [--json]
Eksempel på utdata:
NAME VDISK ID VDISK SIZE VDISK MODE IDX
- f4ed4eae-1512-4273-963b-79ebd93a0932 1024 1 0
VDISK MODEer nummeret på den virtuelle harddiskkontrollertypen;1betyr IDE- Virtuelle harddisker uten navn vises som
-i kolonnenNAME
V. Snapshot-administrasjon
vms vm snapshot list – Viser snapshots
vms vm snapshot list <id> [--json]
Eksempel på utdata:
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 maskinens driftstilstand da snapshottet ble opprettetACTUAL CONSISTENCYer snapshottets konsistenstype;filesystembetyr filsystemkonsistent,crashbetyr krasjkonsistent
vms vm snapshot create – Oppretter et snapshot
Oppretter et snapshot av den virtuelle maskinen for rask tilbakerulling eller sikkerhetskopiering av gjeldende tilstand.
vms vm snapshot create <id>
vms vm snapshot create <id> --body '{"description":"before-upgrade","locked":false}'
- Forespørselsteksten er valgfri:
descriptioner snapshottets beskrivelse,lockedangir hvorvidt det er låst - Snapshottets navn genereres automatisk av systemet ut fra opprettelsestidspunktet
- Snapshots opptar lagringsplass; hvis de ikke ryddes over tid, kan lagringsplassen bli full, så jevnlig opprydding anbefales
vms vm snapshot edit – Redigerer et snapshot
Endrer 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}'
- Bare felter som finnes i forespørselsteksten, endres; felter som ikke finnes, beholder sin opprinnelige verdi; endring av bare beskrivelsen endrer ikke låsetilstanden, og omvendt
Eksempel på utdata:
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 maskinkonfigurasjonen i et snapshot
Viser den virtuelle maskinkonfigurasjonen som er lagret i snapshottet.
vms vm snapshot config <id> <snapshot_name>
<id> er den virtuelle maskinens ID, og <snapshot_name> er snapshottets navn, som kan hentes via vms vm snapshot list <id>.
Eksempel på utdata:
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 konsistenstypen som kan oppnås før et snapshot opprettes, og hjelper med å vurdere om det gjeldende tidspunktet er egnet for å opprette et snapshot.
vms vm snapshot consistency <id>
Eksempel på utdata:
PROPERTY VALUE
CONSISTENCY TYPE filesystem
REASON vm_shutdown
VM STATE shutdown
Når den virtuelle maskinen er slått av, kan det opprettes et filsystemkonsistent snapshot; i driftstilstand kan det vanligvis bare oppnås et krasjkonsistent snapshot.
VI. Fjernkonsoll
vms vm link – Henter VNC-tilkoblingsinformasjon
Henter tilkoblingsinformasjon for den virtuelle maskinens VNC-konsoll, som brukes til å åpne fjernkonsollen i en nettleser.
vms vm link <id> --json
- Den virtuelle maskinen må være i drift eller satt på pause, ellers returneres en tilstandskonfliktfeil
Eksempel på utdata:
{
"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 konsollstien relativ til NAS-administrasjonsadressen,porter konsolltjenestens port, oghttpsangir om det skal åpnes via HTTPS- I JSON-utdata escapes
&i URL-en som\u0026
VII. Administrasjon av virtuelle nettverk
Det finnes to nettverkstyper:
| Type | Beskrivelse |
|---|---|
| Privat (private) | Internt nettverk kun for kommunikasjon mellom lokale virtuelle maskiner; bindes ikke til et fysisk nettverkskort |
| Eksternt (external) | Nettverk bundet til et fysisk nettverkskort; virtuelle maskiner kan kommunisere eksternt via dette nettverket |
vms network list – Viser virtuelle nettverk
vms network list [--limit N] [--offset N] [--json]
Eksempel på utdata:
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 virtuelle maskiner tilkoblet nettverket, ogNUM INTERFACESer antallet valgte fysiske nettverkskort
vms network get – Viser detaljer for et virtuelt nettverk
vms network get <network_id> --json
Eksempel på utdata:
{
"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 informasjon om nettverkskortene som er bundet til nettverket, organisert etter verts-ID;checkedangir hvorvidt nettverkskortet er valgtmetadataregistrerer nettverkets opprettelses- og oppdateringstidspunkter
vms network create – Oppretter et virtuelt nettverk
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
Opprette et privat nettverk:
- Forespørselsteksten må inneholde
name,type(private) samthost_nameellerhost_idfor å angi hvilken vert nettverket opprettes på - Før oppretting kan tilgjengelige verter vises via
vms network list-interfaces private
Opprette et eksternt nettverk:
- Forespørselsteksten må inneholde
name,type(external) ogvlan_id, og angi minst ett fysisk nettverkskort - Nettverkskortet kan angis via
interface_name(f.eks.LAN 1) ellerinterface_id; hvis nettverkskortets navn ikke er unikt på tvers av verter, må det brukes sammen medhost_name - Før oppretting kan tilgjengelige nettverkskort vises via
vms network list-interfaces external
Utdata er informasjonen om det opprettede nettverket 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 det ikke angis et nettverkskort, gir 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 – Oppdaterer et virtuelt nettverk
Bare felter som skal endres, sendes inn; felter som ikke sendes inn, beholder sin opprinnelige verdi.
vms network update --body '{"network_id":"<network_id>","name":"renamed"}'
vms network update --body '{"network_id":"<network_id>","vlan_id":200}'
- Forespørselsteksten må inneholde
network_id - Kommandoen leser først gjeldende nettverkskonfigurasjon og fletter inn de innsendte feltene; nettverksnavnet og de valgte nettverkskortene tømmes ikke
- Utdata er informasjonen om det oppdaterte nettverket
vms network delete – Sletter et virtuelt nettverk (høy risiko)
vms network delete <network_id> [--yes]
- Er en høyrisikohandling: i interaktiv modus spørres det om bekreftelse, i ikke-interaktiv modus er
--yespåkrevd - Sletting av nettverket kobler fra alle virtuelle maskiner som er tilkoblet nettverket
- Det anbefales først å bekrefte de tilkoblede virtuelle maskinene via
vms network list-vnics <network_id>
Bekreftelsesmelding i interaktiv modus:
This action will delete network "b364a1ec-f60c-4971-9ea2-f7a002f09fa3". Do you want to continue? [y/N]:
- Utdata:
Network deleted: <network_id>
vms network list-interfaces – Viser nettverksgrensesnitt
Viser nettverksgrensesnitt av en angitt type.
vms network list-interfaces external [--limit N] [--offset N]
vms network list-interfaces private [--limit N] [--offset N]
externalreturnerer tilgjengelige fysiske nettverkskort på vertenprivatereturnerer vertsinformasjon som kan brukes til å opprette et privat nettverk
Eksempel på utdata (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å utdata (private):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
- - A-eae4 - - 0
vms network list-vnics – Viser virtuelle nettverkskort på nettverket
vms network list-vnics <network_id> [--limit N] [--offset N] [--json]
Eksempel på utdata:
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
Bekrefter hvorvidt den virtuelle svitsjen Open vSwitch er aktivert.
vms network ovsinfo [--json]
Eksempel på utdata:
PROPERTY VALUE
RESULT true
VALUE = true betyr at OVS er aktivert.
VIII. Image-administrasjon
vms image list – Viser images
Viser systemimagefiler som kan brukes til å opprette virtuelle maskiner.
vms image list --json
image_nameer imagenavnet, ogfile_nameer det tilsvarende filnavnettypeer imageformatet, f.eks.iso,qcow2statuser imagestatus;availablebetyr tilgjengeligreposer lagringsplassen der imaget liggerprogresser fremdriften for imagebehandlingsoppgaven;0betyr ingen pågående oppgave
Eksempel på utdata:
{
"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
Endrer imagenavnet eller justerer lagringsplassen der 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"}'
- Forespørselsteksten må inneholde
image_idogrepos;reposer den komplette listen over mållagringsplasser for imaget og må ikke være tom image_name,file_name,typeogfile_sizeer valgfrie felter; hvis de ikke angis, brukes gjeldende verdier- Et tomt
reposvil flytte imaget ut av alle lagringsplasser; kommandoen avviser forespørselen før den utføres - Utdata:
Image updated
vms image delete – Sletter et image (høy risiko)
vms image delete --image-id <image_id> [--yes]
--image-ider påkrevd- Er en høyrisikohandling: i interaktiv modus spørres det om bekreftelse, i ikke-interaktiv modus er
--yespåkrevd - Sletting av imaget påvirker ikke allerede opprettede virtuelle maskiner, men påvirker fremtidig oppretting av virtuelle maskiner basert på imaget
- Det anbefales først å bekrefte bruken via
vms image list-vms --image-id <image_id>
Bekreftelsesmelding i interaktiv modus:
This action will permanently delete image "efd6da18-9475-44cf-8fb0-e2513421e68a". Do you want to continue? [y/N]:
- Utdata:
Image deleted: <image_id>
vms image list-vms – Viser virtuelle maskiner som bruker dette imaget
vms image list-vms --image-id <image_id> [--json]
Eksempel på utdata:
GUEST NAME
1454486
Før et image slettes, kan denne kommandoen kjøres for å bekrefte omfanget; hvis ingen virtuelle maskiner bruker imaget, er utdata tom.
IX. Lagringsplassadministrasjon
vms repo list – Viser lagringsplasser
vms repo list [--json]
Eksempel på utdata:
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 lagringsplass
vms repo get <repo_id> [--json]
Eksempel på utdata:
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 volumet der lagringsplassen liggerSOFT LIMITogHARD LIMITer terskler for kapasitetsvarsler (i prosent)ENABLE LOWER NOTIFYangir hvorvidt påminnelse om lav kapasitet er aktivert
vms repo update – Oppdaterer en lagringsplass
Bare felter som skal endres, sendes inn; felter som ikke sendes inn, beholder sin opprinnelige verdi.
vms repo update --body '{"repo_id":"<repo_id>","name":"new-name"}'
vms repo update --body '{"repoId":"<repo_id>","enable_lower_notify":true}'
- Lagringsplassens ID kan angis via
repo_idellerrepoId - Kommandoen leser først gjeldende konfigurasjon og fletter inn de innsendte feltene; andre innstillinger går ikke tapt
- Utdata er informasjonen om den oppdaterte lagringsplassen
vms repo delete – Sletter en lagringsplass (høy risiko)
vms repo delete <repo_id> <true|false> [--yes]
- Den andre parameteren er
need_save_data:truebetyr at datafilene på disken beholdes,falsebetyr at de slettes sammen med dataene - Er en høyrisikohandling: i interaktiv modus spørres det om bekreftelse, i ikke-interaktiv modus er
--yespåkrevd - Sletting av lagringsplassen fjerner også de virtuelle maskinene og image-filene som ligger i den; det anbefales først å kjøre
vms repo check-runningogvms repo whether-exist-datafor å bekrefte omfanget
Bekreftelsesmelding i interaktiv modus:
This action will delete repository "735ef7f7-5d8d-4102-9377-8a7b8c33cda6" (save data: true). Do you want to continue? [y/N]:
- Utdata:
Repository deleted: <repo_id>
vms repo list-volumes – Viser tilgjengelige volumer
Viser volumer som kan brukes til å opprette en lagringsplass.
vms repo list-volumes [--json]
Eksempel på utdata:
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 lagringsplass
vms repo list-vms --body '{"repo_id":"<repo_id>"}'
- Lagringsplassens ID kan angis via
repo_idellerrepoId - Kommandoen henter først lagringsplasobjektet og spør deretter etter dets virtuelle maskiner, noe som gir mer pålitelige resultater
vms repo check-running – Kontrollerer virtuelle maskiner som kjører på lagringsplassen
vms repo check-running <repo_id> [--json]
Kjøres før sletting av en lagringsplass for å bekrefte at ingen virtuelle maskiner kjører; hvis ingen virtuelle maskiner kjører, er utdata tom.
vms repo whether-exist-data – Kontrollerer om det finnes data i lagringsplassen
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
Kjøres før sletting av en lagringsplass for å bekrefte hvorvidt det fortsatt finnes data i lagringsplassen; tilsvarer forhåndskontrollen før sletting av en lagringsplass i nettgrensesnittet.
X. Globale innstillinger
vms setting get – Viser globale innstillinger
Viser den globale konfigurasjonen for VMs-applikasjonen.
vms setting get [--json]
Eksempel på utdata:
PROPERTY VALUE
HOST SHUTDOWN BEHAVIOR 1
KB LAYOUT en-us
SHOW VIRTIO BLK VDISK false
HOST SHUTDOWN BEHAVIORer måten virtuelle maskiner håndteres på når vertsmaskinen slås avKB LAYOUTer den virtuelle maskinens tastaturoppsett
XI. Spørring om overvåkingsinformasjon
vms collectd hostinfo – Viser vertsmaskinens overvåkingsinformasjon
vms collectd hostinfo [--limit N] [--offset N] [--json]
Eksempel på utdata:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
A-eae4 - running healthy 2.53 15.66 Info
vms collectd vminfo – Viser den virtuelle maskinens overvåkingsinformasjon
vms collectd vminfo [--limit N] [--offset N] [--json]
Eksempel på utdata:
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 lagringsovervåkingsinformasjon
vms collectd storageinfo [--limit N] [--offset N] [--json]
Eksempel på utdata:
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 modus
CLI avgjør hvorvidt den for tiden kjører i et terminalmiljø, og bruker ulik atferd:
Interaktiv modus (terminalmiljø)
- Farlige handlinger viser en bekreftelsesmelding med No som standardvalg
- Skriv
yellerYfor å fortsette, skrivneller trykk Enter for å avbryte - Ved avbrudd sendes
Operation cancelledut, og utkoden er 99
Ikke-interaktiv modus (skript/automatisering)
- Farlige handlinger må bruke
--yesfor å hoppe over bekreftelsen; ellers feiler kommandoen og returnerer utkode 1 - Uten terminalmiljø ventes det ikke på inndata, noe som passer for skript og planlagte oppgaver
- Det anbefales å håndtere utkoder eksplisitt i skript for å skille mellom suksess, feil og tilstandskonflikt
JSON-utdataformat
Spørringskommandoer støtter parameteren --json, som skriver ut standardiserte JSON-data som er enkle for programmer å tolke.
Formatkonvensjoner:
- Feltnavn bruker snake_case
- Boolske verdier er true/false
- Tid bruker ISO 8601-format med nanosekundpresisjon og offset for UTC+8 (f.eks. 2026-09-02T11:43:51.176535374+08:00)
- JSON sendes til stdout, feilmeldinger til stderr
- Lange felter som avkortes i tabellutdata, er komplette verdier i JSON-utdata
Eksempel:
vms setting get --json
{
"host_shutdown_behavior": 1,
"kb_layout": "en-us",
"show_virtio_blk_vdisk": false
}
JSON-strukturen varierer noe mellom kommandoer: vms vm list, vms vm snapshot list og vms vm logs skriver ut en matrise direkte; andre liste-kommandoer skriver ut et objekt med totalCount og et datafelt, der datafeltets navn varierer etter ressursen (f.eks. items, hosts, vms, storage). For eksempel 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"
}
}
}
Noen kommandoers JSON-utdata er enkle verdier; for eksempel skriver vms network ovsinfo --json ut true, og vms vm pause --json skriver ut null.
Forklaring av utkoder
| Utkode | Betydning | Typisk scenario |
|---|---|---|
| 0 | Suksess | Kommandoen ble fullført normalt |
| 1 | Parameterfeil | Manglende påkrevde parametere, feil parameterformat eller manglende --yes |
| 3 | Ressursen finnes ikke | Kommandoens forhåndsvalidering mislyktes, f.eks. finnes det angitte imaget ikke |
| 4 | Tilstandskonflikt | Den virtuelle maskinens gjeldende tilstand tillater ikke handlingen (f.eks. avslutning av en virtuell maskin som allerede er slått av) |
| 6 | Tilkoblingsfeil | Kan ikke koble til VMs-tjenesten, eller socket-stien er feil |
| 7 | Tidsavbrudd | Forespørselen fikk tidsavbrudd; kan justeres via --timeout |
| 9 | Utførelsesfeil | Backenden returnerer en feil (feilmeldingen inneholder code_num og en feilbeskrivelse) |
| 99 | Brukeren avbrøt | Valg av No eller trykk på Enter ved interaktiv bekreftelse |
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å bruksscenarier
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-operasjoner i skript
# 批量启动所有已关机的虚拟机
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'
Sikkerhetskopi og inspeksjon
# 关机后为虚拟机创建快照
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"}'
Kontroll før sletting
# 删除存储空间前,先确认是否有虚拟机正在运行、是否存在数据
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>
Kall fra AI-verktøy
# AI 工具可通过命令行调用 vms 命令
# 例如:获取虚拟机与宿主机状态供 AI 分析
vms vm list --json
vms collectd hostinfo --json
# AI 可解析 JSON 输出并作出决策
vms vm list-resource --json
Intern utvikling og systemintegrasjon
# 开发人员可通过 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 stilte spørsmål
Q: Krever CLI ekstra installasjon?
Nei. CLI installeres sammen med VMs-applikasjonen, og etter at applikasjonen er aktivert, kan du bruke den ved å kjøre kommandoen vms.
Q: Må CLI brukes via SSH?
Nei. CLI kan kalles fra enhver kommandolinjeterminal, inkludert lokal terminal, ekstern SSH, skript, AI-verktøy osv.
Q: Kan CLI administrere virtuelle maskiner på andre enheter?
Nei. CLI kommuniserer med VMs-tjenesten via en lokal unix socket og brukes kun til å administrere virtuelle maskiner på den lokale maskinen.
Q: Hvorfor ber noen kommandoer om bekreftelse, mens andre ikke gjør det?
Handlinger som å slette virtuelle maskiner, slette nettverk, slette images, slette lagringsplasser samt avslutning (poweroff, force-poweroff) påvirker data eller tjenester og krever derfor som standard bekreftelse; start-, omstart-, pause-, gjenopptakelses- og spørringskommandoer har ingen slike begrensninger.
Q: Hvordan bekrefter man farlige handlinger i ikke-interaktiv modus?
Alle farlige handlinger må få tilføyd parameteren --yes; ellers feiler kommandoen og avsluttes (utkode 1).
Q: Hvordan avgjør man i et skript hvorvidt en kommando lyktes?
Bedøm ut fra utkoden: 0 betyr suksess, og alt annet enn 0 betyr feil. Du kan også tolke innholdet i --json-utdata.
Q: Hvorfor er listen i --json-utdata et objekt?
Noen kommandoers JSON-utdata organiseres som et objekt etter ID og ledsages av feltet totalCount, noe som gjør det enkelt å hente direkte etter ID.
Mer hjelp
Hver kommando støtter --help for å se detaljert bruk:
vms --help
vms vm --help
vms vm poweroff --help
vms network create --help