VMs CLI
Introduktion
VMs CLI är ett kommandoradsverktyg för TerraMasters VMs-virtualiseringsapplikation och erbjuder samma fråge- och driftfunktioner som webbgränssnittet. CLI kommunicerar med VMs-tjänsten via en lokal unix socket och använder ett standardiserat kommandogränssnitt och JSON-utdataformat, vilket gör det enkelt att integrera i skript, automatiserad drift och vidareutveckling.
Huvudfunktioner
- Klar att använda: installeras tillsammans med VMs-applikationen, ingen ytterligare installation krävs
- Flexibel användning: stöder lokala terminaler, fjärr-SSH, skript, AI-verktyg och andra sätt att anropa den
- Interaktivt och icke-interaktivt läge: passar både för administratörers dagliga underhåll och för skript och automatiserade uppgifter
- JSON-utdata: enkelt för program att tolka och integrera i automatisering
- Lokal kommunikation: kommunicerar endast med VMs-tjänsten via en lokal unix socket och öppnar inga portar externt
- Bekräftelse av farliga åtgärder: åtgärder som att ta bort virtuella maskiner eller nätverk kräver som standard bekräftelse
Kom igång
# 在终端中执行(可通过本地终端、SSH、脚本、AI 工具等任意命令行途径)
vms --help
# 查看虚拟机列表
vms vm list
# 查看虚拟机详情
vms vm get <id>
# 以 JSON 格式输出(便于脚本解析)
vms vm list --json
Exempel på utdata från 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 -
Globala alternativ
Följande alternativ gäller för alla kommandon:
| Alternativ | Förkortning | Beskrivning |
|---|---|---|
--help | -h | Visar hjälpinformation för kommandot |
--version | -v | Visar versionsnummer (kan kombineras med --json för strukturerade data) |
--json | - | Utdata i JSON-format |
--yes | -y | Hoppar över bekräftelse vid farliga åtgärder (krävs i icke-interaktivt läge) |
--debug | - | Aktiverar felsökningsutdata med detaljerat utförandeförlopp |
--socket <path> | - | Sökväg till VMs unix socket, standard /var/api/VMs.sock |
--timeout <duration> | - | Timeout för begäran, standard 30s |
Exempel på versionsinformation
vms --version
vms CLI v1.0.058
vms --version --json
{
"build": "20260911",
"cli_version": "v1.0.058"
}
Driftmiljö
VMs CLI installeras tillsammans med VMs-applikationen. När applikationen aktiveras länkas CLI till systemets standardmapp för PATH, och det kan användas direkt efter SSH-inloggning.
| Element | Beskrivning |
|---|---|
| CLI-fil | /Volume1/@apps/VMs/bin/vms |
| Kommandosökväg | /usr/local/sbin/vms (redan i systemets PATH) |
| Kommunikationsmetod | Lokal unix socket, standard /var/api/VMs.sock |
| Målgrupp | Administratörer inloggade på den lokala maskinen |
Observera:
- CLI används för att hantera virtuella maskiner på den lokala maskinen och stöder inte fjärrhantering av andra enheter via CLI.
- Backend returnerar alltid HTTP 200; huruvida kommandot lyckades avgörs av fältet
codei svarskroppen, som CLI omvandlar till en slutkod. - Farliga åtgärder (ta bort virtuell maskin, ta bort nätverk, ta bort avbildning, ta bort lagringsutrymme) begär bekräftelse i interaktivt läge och kräver uttryckligen
--yesi icke-interaktivt läge.
Kommandoöversikt
Här följer en snabbreferensöversikt över alla vms-kommandon:
| Överordnat kommando | Underkommando | Funktionsbeskrivning | Bekräftelse | Hög risk |
|---|---|---|---|---|
| vms | --version | Visar versionsinformation | Nej | Nej |
| vms vm | list | Visar alla virtuella maskiner | Nej | Nej |
| vms vm | get | Visar detaljer för en angiven virtuell maskin | Nej | Nej |
| vms vm | list-resource | Visar resurser som är tillgängliga vid skapande av virtuella maskiner | Nej | Nej |
| vms vm | logs | Visar den virtuella maskinens åtgärdslogg | Nej | Nej |
| vms vm | poweron | Startar den virtuella maskinen | Nej | Nej |
| vms vm | poweroff | Stänger av den virtuella maskinen (normal avstängning) | Ja | Nej |
| vms vm | force-poweroff | Tvingar den virtuella maskinen att stängas av | Ja | ✅ |
| vms vm | reboot | Startar om den virtuella maskinen | Nej | Nej |
| vms vm | pause | Pausar den virtuella maskinen | Nej | Nej |
| vms vm | resume | Återupptar en pausad virtuell maskin | Nej | Nej |
| vms vm | autorun | Anger automatisk start vid uppstart | Nej | Nej |
| vms vm | clone | Klonar den virtuella maskinen | Nej | Nej |
| vms vm | export | Exporterar den virtuella maskinen som en OVA-fil | Nej | Nej |
| vms vm | delete | Tar bort den virtuella maskinen | Ja | ✅ |
| vms vm disk | list | Visar den virtuella maskinens virtuella hårddiskar | Nej | Nej |
| vms vm snapshot | list | Visar den virtuella maskinens ögonblicksbilder | Nej | Nej |
| vms vm snapshot | create | Skapar en ögonblicksbild | Nej | Nej |
| vms vm snapshot | edit | Redigerar ögonblicksbildens beskrivning och låsstatus | Nej | Nej |
| vms vm snapshot | config | Visar den virtuella maskinkonfiguration som sparats i ögonblicksbilden | Nej | Nej |
| vms vm snapshot | consistency | Förhandsgranskar ögonblicksbildens konsistens | Nej | Nej |
| vms vm | link | Hämtar anslutningsinformation för VNC-konsolen | Nej | Nej |
| vms network | list | Visar virtuella nätverk | Nej | Nej |
| vms network | get | Visar detaljer för ett virtuellt nätverk | Nej | Nej |
| vms network | create | Skapar ett virtuellt nätverk | Nej | Nej |
| vms network | update | Uppdaterar ett virtuellt nätverk | Nej | Nej |
| vms network | delete | Tar bort ett virtuellt nätverk | Ja | ✅ |
| vms network | list-interfaces | Visar nätverksgränssnitt av en angiven typ | Nej | Nej |
| vms network | list-vnics | Visar virtuella nätverkskort på nätverket | Nej | Nej |
| vms network | ovsinfo | Visar om OVS är aktiverat | Nej | Nej |
| vms image | list | Visar avbildningar | Nej | Nej |
| vms image | edit | Redigerar avbildningsinformation | Nej | Nej |
| vms image | delete | Tar bort en avbildning | Ja | ✅ |
| vms image | list-vms | Visar virtuella maskiner som använder denna avbildning | Nej | Nej |
| vms repo | list | Visar lagringsutrymmen | Nej | Nej |
| vms repo | get | Visar detaljer för ett lagringsutrymme | Nej | Nej |
| vms repo | update | Uppdaterar lagringsutrymmets konfiguration | Nej | Nej |
| vms repo | delete | Tar bort ett lagringsutrymme | Ja | ✅ |
| vms repo | list-volumes | Visar tillgängliga volymer | Nej | Nej |
| vms repo | list-vms | Visar virtuella maskiner i lagringsutrymmet | Nej | Nej |
| vms repo | check-running | Kontrollerar virtuella maskiner som körs på lagringsutrymmet | Nej | Nej |
| vms repo | whether-exist-data | Kontrollerar om det finns data i lagringsutrymmet | Nej | Nej |
| vms setting | get | Visar globala inställningar | Nej | Nej |
| vms collectd | hostinfo | Visar värdmaskinens övervakningsinformation | Nej | Nej |
| vms collectd | vminfo | Visar den virtuella maskinens övervakningsinformation | Nej | Nej |
| vms collectd | storageinfo | Visar lagringsövervakningsinformation | Nej | Nej |
Kommandoreferens
<id> i kommandona är den virtuella maskinens ID och motsvarar GUEST ID i utdata från listan över virtuella maskiner; detsamma gäller <network_id>, <image_id> och <repo_id>, som kan hämtas via vms network list, vms image list respektive vms repo list.
Om utdataexempel:
vmstabellutdata trunkerar för långa fältvärden till en fast bredd (avslutas med ellips och oberoende av terminalbredden), till exempelVDISKS,VNICSochISO IMAGESi den virtuella maskinkonfigurationen samt avbildningsnamn. Därför ges i detta dokument fullständiga--json-utdataexempel för kommandon med långa fält, medan övriga kommandon ges tabellexempel. Vid skriptbearbetning rekommenderas också att--jsonanvänds konsekvent.
I. Frågor om virtuella maskiner
vms vm list – Visar virtuella maskiner
Visar alla virtuella maskiner på den lokala maskinen och deras grundläggande status.
vms vm list [--limit N] [--offset N] [--json]
--limitoch--offsetär pagineringsparametrar- Utdatakolumner: namn, virtuell maskin-ID, driftstatus, antal CPU-kärnor, minnesstorlek (i KB), IP-adress
Exempel 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 -
Vanliga värden för STATUS:
| Status | Beskrivning |
|---|---|
| running | Körs |
| shutdown | Avstängd |
| saved | Pausad (driftstatus sparad på disken) |
vms vm get – Visar detaljer för en virtuell maskin
Visar fullständig konfiguration och driftstatus för en angiven virtuell maskin.
vms vm get <id> --json
- Utdata innehåller alla konfigurations- och driftstatusfält för den virtuella maskinen
- Tomma värden som ingen beskrivning eller ingen IP visas som en tom sträng
- Om den virtuella maskinen inte finns returnerar kommandot ett fel och skriver ut ett felmeddelande
Exempel 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 – Visar tillgängliga resurser för att skapa virtuella maskiner
Visar de resurser värdmaskinen kan erbjuda, såsom firmwaretyper, avbildningar, CPU, minne, nätverk, lagringsutrymme och enheter som kan skickas direkt igenom (passthrough), för bedömning inför skapande av en virtuell maskin.
vms vm list-resource --json
Returnerade fält: max_cpu_num, max_ram_size, usbs, pci_devices, networks, repos, images, video_cards, firmware, keyboard_layout.
Exempel 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 – Visar den virtuella maskinens åtgärdslogg
Visar åtgärdsloggen för en angiven virtuell maskin (start/avstängning, ögonblicksbilder, redigering, import/export osv.).
vms vm logs <id> --json [--limit N] [--desc]
--limitanger antalet returnerade poster, standard 50--descsorterar efter tid i fallande ordning (aktiverat som standard)- Varje loggpost innehåller tid, nivå, kategori, användare och händelsebeskrivning; händelsebeskrivningen är fullständig text
- Händelsebeskrivningen (
event) skickas lokaliserad av VMs-tjänsten i enlighet med enhetens systemspråk; exemplen i detta dokument använder engelska
Exempel 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ömhantering för virtuella maskiner
vms vm poweron – Startar en virtuell maskin
vms vm poweron <id>
- Den virtuella maskinen måste vara avstängd, annars returneras ett tillståndskonfliktfel
- Utdata:
VM powered on: <id>
vms vm poweroff – Stänger av en virtuell maskin
Skickar en begäran om normal avstängning till den virtuella maskinen så att systemet stängs av på ett smidigt sätt.
vms vm poweroff <id> [--yes]
- Är en farlig åtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs
--yes - Den virtuella maskinen måste vara i drift, annars returneras ett tillståndskonfliktfel
Bekräftelsemeddelande i interaktivt läge:
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 – Tvingar en virtuell maskin att stängas av (hög risk)
Tvingar den virtuella maskinen att stängas av, vilket motsvarar att bryta strömmen.
vms vm force-poweroff <id> [--yes]
- Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs
--yes - Kan leda till dataförlust i den virtuella maskinen; använd den endast när den virtuella maskinen inte svarar
Bekräftelsemeddelande i interaktivt läge:
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 – Startar om en virtuell maskin
vms vm reboot <id>
- Utdata:
VM rebooted: <id>
vms vm pause – Pausar en virtuell maskin
Fryser den virtuella maskinens driftstatus och sparar den aktuella statusen på disken.
vms vm pause <id>
- Den virtuella maskinen måste vara i drift, annars returneras ett tillståndskonfliktfel
- Efter pausning visas den virtuella maskinens status som
saved - Utdata:
VM paused: <id>
vms vm resume – Återupptar en virtuell maskin
Återupptar en virtuell maskin från pausat läge till driftläge.
vms vm resume <id>
- Den virtuella maskinen måste vara pausad, annars returneras ett tillståndskonfliktfel
- Utdata:
VM resumed: <id>
vms vm autorun – Anger automatisk start vid uppstart
Anger huruvida den virtuella maskinen automatiskt ska starta när värdmaskinen startar.
vms vm autorun <id> <true|false>
- Den andra parametern måste vara
trueellerfalse - Kommandot läser den aktuella konfigurationen och ändrar endast reglaget för automatisk start; andra inställningar påverkas inte
- Utdata:
Auto-start enabled for VM <id>ellerAuto-start disabled for VM <id>
III. Kopiering, export och borttagning av virtuella maskiner
vms vm clone – Klonar en virtuell maskin
Skapar en ny virtuell maskin genom att kopiera en befintlig virtuell maskin som mall.
vms vm clone --body '{"guest_id":"<source_id>","name":"my-clone"}'
vms vm clone --file clone.json
- I begärantexten är
guest_idkällmaskinens ID ochname(ellerguest_name) är namnet på den nya virtuella maskinen - Källmaskinen måste vara avstängd
--bodyskickar begärantexten direkt som en JSON-sträng,--fileläser begärantexten från en fil
vms vm export – Exporterar en virtuell maskin
Exporterar den virtuella maskinen som en OVA-fil, vilket gör det enkelt att säkerhetskopiera eller migrera till andra virtualiseringsplattformar.
vms vm export --body '{"guest_id":"<source_id>","target_ova_path":"/Volume1/export/my-vm.ova"}'
vms vm export --file export.json
- I begärantexten är
guest_idkällmaskinens ID,target_ova_pathär sökvägen till målfilen ochova_modeär det valfria VMware-kompatibla läget - Källmaskinen måste vara avstängd
- Export är en tidskrävande uppgift; virtuella maskiner med stor kapacitet tar längre tid att exportera
vms vm delete – Tar bort en virtuell maskin (hög risk)
Tar bort den virtuella maskinen permanent.
vms vm delete <id> [--yes]
- Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs
--yes - Borttagning kan inte ångras; bekräfta i förväg att data i den virtuella maskinen är säkerhetskopierade
Bekräftelsemeddelande i interaktivt läge:
This action will permanently delete VM "5a0391f2-c545-45eb-8eed-0a104972229b". Do you want to continue? [y/N]:
- Utdata:
VM deleted: <id>
IV. Virtuella hårddiskar
vms vm disk list – Visar virtuella hårddiskar
Visar alla virtuella hårddiskar på en angiven virtuell maskin.
vms vm disk list <id> [--json]
Exempel på utdata:
NAME VDISK ID VDISK SIZE VDISK MODE IDX
- f4ed4eae-1512-4273-963b-79ebd93a0932 1024 1 0
VDISK MODEär numret på den virtuella hårddiskkontrollertypen;1betyder IDE- Virtuella hårddiskar utan namn visas som
-i kolumnenNAME
V. Hantering av ögonblicksbilder
vms vm snapshot list – Visar ögonblicksbilder
vms vm snapshot list <id> [--json]
Exempel 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 STATEär den virtuella maskinens driftstatus när ögonblicksbilden skapadesACTUAL CONSISTENCYär ögonblicksbildens konsistenstyp;filesystembetyder filsystemskonsistent,crashbetyder kraschkonsistent
vms vm snapshot create – Skapar en ögonblicksbild
Skapar en ögonblicksbild av den virtuella maskinen för snabb återställning eller säkerhetskopiering av det aktuella tillståndet.
vms vm snapshot create <id>
vms vm snapshot create <id> --body '{"description":"before-upgrade","locked":false}'
- Begärantexten är valfri:
descriptionär ögonblicksbildens beskrivning,lockedanger huruvida den är låst - Ögonblicksbildens namn genereras automatiskt av systemet utifrån skapandetidpunkten
- Ögonblicksbilder upptar lagringsutrymme; om de inte rensas över tid kan lagringsutrymmet bli fullt, så regelbunden rensning rekommenderas
vms vm snapshot edit – Redigerar en ögonblicksbild
Ändrar ögonblicksbildens beskrivning eller låsstatus.
vms vm snapshot edit <id> <snapshot_name> --body '{"description":"updated description"}'
vms vm snapshot edit <id> <snapshot_name> --body '{"locked":true}'
- Endast fält som finns i begärantexten ändras; fält som inte finns behåller sitt ursprungliga värde; att endast ändra beskrivningen ändrar inte låsstatusen och tvärtom
Exempel 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 – Visar den virtuella maskinkonfigurationen i en ögonblicksbild
Visar den virtuella maskinkonfiguration som sparats i ögonblicksbilden.
vms vm snapshot config <id> <snapshot_name>
<id> är den virtuella maskinens ID och <snapshot_name> är ögonblicksbildens namn, som kan hämtas via vms vm snapshot list <id>.
Exempel 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 – Förhandsgranskar ögonblicksbildens konsistens
Förhandsgranskar den konsistenstyp som kan uppnås innan en ögonblicksbild skapas, vilket hjälper till att bedöma om den aktuella tidpunkten är lämplig för att skapa en ögonblicksbild.
vms vm snapshot consistency <id>
Exempel på utdata:
PROPERTY VALUE
CONSISTENCY TYPE filesystem
REASON vm_shutdown
VM STATE shutdown
När den virtuella maskinen är avstängd kan en filsystemskonsistent ögonblicksbild skapas; i driftläge kan vanligtvis endast en kraschkonsistent ögonblicksbild uppnås.
VI. Fjärrkonsol
vms vm link – Hämtar VNC-anslutningsinformation
Hämtar anslutningsinformation för den virtuella maskinens VNC-konsol, som används för att öppna fjärrkonsolen i en webbläsare.
vms vm link <id> --json
- Den virtuella maskinen måste vara i drift eller pausad, annars returneras ett tillståndskonfliktfel
Exempel 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
}
urlär konsolens sökväg relativt NAS-administrationsadressen,portär konsoltjänstens port ochhttpsanger huruvida åtkomst sker via HTTPS- I JSON-utdata escapes
&i URL:en som\u0026
VII. Hantering av virtuella nätverk
Det finns två nätverkstyper:
| Typ | Beskrivning |
|---|---|
| Privat (private) | Internt nätverk endast för kommunikation mellan lokala virtuella maskiner; binds inte till ett fysiskt nätverkskort |
| Externt (external) | Nätverk bundet till ett fysiskt nätverkskort; virtuella maskiner kan kommunicera externt via detta nätverk |
vms network list – Visar virtuella nätverk
vms network list [--limit N] [--offset N] [--json]
Exempel 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 GUESTSär antalet virtuella maskiner anslutna till nätverket ochNUM INTERFACESär antalet valda fysiska nätverkskort
vms network get – Visar detaljer för ett virtuellt nätverk
vms network get <network_id> --json
Exempel 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
}
interfacesär information om de nätverkskort som är bundna till nätverket, organiserad efter värd-ID;checkedanger huruvida nätverkskortet är valtmetadataregistrerar nätverkets skapande- och uppdateringstidpunkter
vms network create – Skapar ett virtuellt nätverk
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
Skapa ett privat nätverk:
- Begärantexten måste innehålla
name,type(private) samthost_nameellerhost_idför att ange på vilken värd nätverket skapas - Före skapande kan tillgängliga värdar visas via
vms network list-interfaces private
Skapa ett externt nätverk:
- Begärantexten måste innehålla
name,type(external) ochvlan_idsamt ange minst ett fysiskt nätverkskort - Nätverkskortet kan anges via
interface_name(t.ex.LAN 1) ellerinterface_id; om nätverkskortets namn inte är unikt mellan värdar måste det användas tillsammans medhost_name - Före skapande kan tillgängliga nätverkskort visas via
vms network list-interfaces external
Utdata är informationen om det skapade nätverket och har samma 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
}
Om inget nätverkskort anges ger kommandot en ledtråd:
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 – Uppdaterar ett virtuellt nätverk
Endast fält som ska ändras skickas in; fält som inte skickas in behåller sitt ursprungliga värde.
vms network update --body '{"network_id":"<network_id>","name":"renamed"}'
vms network update --body '{"network_id":"<network_id>","vlan_id":200}'
- Begärantexten måste innehålla
network_id - Kommandot läser först den aktuella nätverkskonfigurationen och sammanfogar de inskickade fälten; nätverksnamnet och de valda nätverkskorten rensas inte
- Utdata är informationen om det uppdaterade nätverket
vms network delete – Tar bort ett virtuellt nätverk (hög risk)
vms network delete <network_id> [--yes]
- Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs
--yes - Borttagning av nätverket kopplar från alla virtuella maskiner som är anslutna till nätverket
- Det rekommenderas att först bekräfta de anslutna virtuella maskinerna via
vms network list-vnics <network_id>
Bekräftelsemeddelande i interaktivt läge:
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 – Visar nätverksgränssnitt
Visar nätverksgränssnitt av en angiven typ.
vms network list-interfaces external [--limit N] [--offset N]
vms network list-interfaces private [--limit N] [--offset N]
externalreturnerar tillgängliga fysiska nätverkskort på värdenprivatereturnerar värdinformation som kan användas för att skapa ett privat nätverk
Exempel 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
Exempel på utdata (private):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
- - A-eae4 - - 0
vms network list-vnics – Visar virtuella nätverkskort på nätverket
vms network list-vnics <network_id> [--limit N] [--offset N] [--json]
Exempel 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 – Visar OVS-status
Bekräftar huruvida den virtuella växeln Open vSwitch är aktiverad.
vms network ovsinfo [--json]
Exempel på utdata:
PROPERTY VALUE
RESULT true
VALUE = true betyder att OVS är aktiverat.
VIII. Hantering av avbildningar
vms image list – Visar avbildningar
Visar systemavbildningsfiler som kan användas för att skapa virtuella maskiner.
vms image list --json
image_nameär avbildningsnamnet ochfile_nameär motsvarande filnamntypeär avbildningsformatet, t.ex.iso,qcow2statusär avbildningsstatus;availablebetyder tillgängligreposär lagringsutrymmet där avbildningen finnsprogressär framdriften för avbildningsbearbetningsuppgiften;0betyder ingen pågående uppgift
Exempel 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 – Redigerar en avbildning
Ändrar avbildningsnamnet eller justerar lagringsutrymmet där avbildningen finns.
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"}'
- Begärantexten måste innehålla
image_idochrepos;reposär den kompletta listan över mållagringsutrymmen för avbildningen och får inte vara tom image_name,file_name,typeochfile_sizeär valfria fält; om de inte anges används aktuella värden- Ett tomt
reposflyttar avbildningen ut ur alla lagringsutrymmen; kommandot avvisar begäran innan den utförs - Utdata:
Image updated
vms image delete – Tar bort en avbildning (hög risk)
vms image delete --image-id <image_id> [--yes]
--image-idär obligatoriskt- Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs
--yes - Borttagning av avbildningen påverkar inte redan skapade virtuella maskiner, men påverkar framtida skapande av virtuella maskiner baserat på avbildningen
- Det rekommenderas att först bekräfta användningen via
vms image list-vms --image-id <image_id>
Bekräftelsemeddelande i interaktivt läge:
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 – Visar virtuella maskiner som använder denna avbildning
vms image list-vms --image-id <image_id> [--json]
Exempel på utdata:
GUEST NAME
1454486
Innan en avbildning tas bort kan detta kommando köras för att bekräfta omfattningen; om inga virtuella maskiner använder avbildningen är utdata tom.
IX. Hantering av lagringsutrymmen
vms repo list – Visar lagringsutrymmen
vms repo list [--json]
Exempel 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 – Visar detaljer för ett lagringsutrymme
vms repo get <repo_id> [--json]
Exempel 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 VOLUMEär den volym där lagringsutrymmet finnsSOFT LIMITochHARD LIMITär tröskelvärden för kapacitetsvarningar (i procent)ENABLE LOWER NOTIFYanger huruvida påminnelse om låg kapacitet är aktiverad
vms repo update – Uppdaterar ett lagringsutrymme
Endast fält som ska ändras skickas in; fält som inte skickas in behåller sitt ursprungliga värde.
vms repo update --body '{"repo_id":"<repo_id>","name":"new-name"}'
vms repo update --body '{"repoId":"<repo_id>","enable_lower_notify":true}'
- Lagringsutrymmets ID kan anges via
repo_idellerrepoId - Kommandot läser först den aktuella konfigurationen och sammanfogar de inskickade fälten; andra inställningar går inte förlorade
- Utdata är informationen om det uppdaterade lagringsutrymmet
vms repo delete – Tar bort ett lagringsutrymme (hög risk)
vms repo delete <repo_id> <true|false> [--yes]
- Den andra parametern är
need_save_data:truebetyder att datafilerna på disken behålls,falsebetyder att de tas bort tillsammans med data - Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs
--yes - Borttagning av lagringsutrymmet tar även bort de virtuella maskinerna och avbildningarna i det; det rekommenderas att först köra
vms repo check-runningochvms repo whether-exist-dataför att bekräfta omfattningen
Bekräftelsemeddelande i interaktivt läge:
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 – Visar tillgängliga volymer
Visar volymer som kan användas för att skapa ett lagringsutrymme.
vms repo list-volumes [--json]
Exempel 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 – Visar virtuella maskiner i ett lagringsutrymme
vms repo list-vms --body '{"repo_id":"<repo_id>"}'
- Lagringsutrymmets ID kan anges via
repo_idellerrepoId - Kommandot hämtar först lagringsobjektet och frågar därefter efter dess virtuella maskiner, vilket ger mer tillförlitliga resultat
vms repo check-running – Kontrollerar virtuella maskiner som körs på lagringsutrymmet
vms repo check-running <repo_id> [--json]
Körs före borttagning av ett lagringsutrymme för att bekräfta att inga virtuella maskiner körs; om inga virtuella maskiner körs är utdata tom.
vms repo whether-exist-data – Kontrollerar om det finns data i lagringsutrymmet
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
Körs före borttagning av ett lagringsutrymme för att bekräfta huruvida det fortfarande finns data i lagringsutrymmet; motsvarar förhandskontrollen före borttagning av ett lagringsutrymme i webbgränssnittet.
X. Globala inställningar
vms setting get – Visar globala inställningar
Visar den globala konfigurationen för VMs-applikationen.
vms setting get [--json]
Exempel på utdata:
PROPERTY VALUE
HOST SHUTDOWN BEHAVIOR 1
KB LAYOUT en-us
SHOW VIRTIO BLK VDISK false
HOST SHUTDOWN BEHAVIORär hur virtuella maskiner hanteras när värdmaskinen stängs avKB LAYOUTär den virtuella maskinens tangentbordslayout
XI. Frågor om övervakningsinformation
vms collectd hostinfo – Visar värdmaskinens övervakningsinformation
vms collectd hostinfo [--limit N] [--offset N] [--json]
Exempel på utdata:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
A-eae4 - running healthy 2.53 15.66 Info
vms collectd vminfo – Visar den virtuella maskinens övervakningsinformation
vms collectd vminfo [--limit N] [--offset N] [--json]
Exempel 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 – Visar lagringsövervakningsinformation
vms collectd storageinfo [--limit N] [--offset N] [--json]
Exempel 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
Interaktivt och icke-interaktivt läge
CLI avgör huruvida det för närvarande körs i en terminalmiljö och använder olika beteenden:
Interaktivt läge (terminalmiljö)
- Farliga åtgärder visar ett bekräftelsemeddelande med No som standardval
- Skriv
yellerYför att fortsätta, skrivneller tryck Enter för att avbryta - Vid avbrott skickas
Operation cancelledut och slutkoden är 99
Icke-interaktivt läge (skript/automatisering)
- Farliga åtgärder måste använda
--yesför att hoppa över bekräftelsen; annars misslyckas kommandot och returnerar slutkoden 1 - Utan terminalmiljö väntas inte på indata, vilket passar skript och schemalagda uppgifter
- Det rekommenderas att hantera slutkoder uttryckligen i skript för att skilja mellan framgång, fel och tillståndskonflikt
JSON-utdataformat
Frågekommandon stöder parametern --json, som skriver ut standardiserade JSON-data som är enkla för program att tolka.
Formatkonventioner:
- Fältnamn använder snake_case
- Booleska värden är true/false
- Tid använder ISO 8601-format med nanosekundsprecision och offset för UTC+8 (t.ex. 2026-09-02T11:43:51.176535374+08:00)
- JSON skickas till stdout, felmeddelanden till stderr
- Långa fält som trunkeras i tabellutdata är fullständiga värden i JSON-utdata
Exempel:
vms setting get --json
{
"host_shutdown_behavior": 1,
"kb_layout": "en-us",
"show_virtio_blk_vdisk": false
}
JSON-strukturen varierar något mellan kommandon: vms vm list, vms vm snapshot list och vms vm logs skriver ut en array direkt; övriga listkommandon skriver ut ett objekt med totalCount och ett datafält, där datafältets namn varierar beroende på resursen (t.ex. items, hosts, vms, storage). Till exempel 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"
}
}
}
Vissa kommandons JSON-utdata är enkla värden; till exempel skriver vms network ovsinfo --json ut true och vms vm pause --json skriver ut null.
Förklaring av slutkoder
| Slutkod | Betydelse | Typiskt scenario |
|---|---|---|
| 0 | Framgång | Kommandot slutfördes normalt |
| 1 | Parameterfel | Saknade obligatoriska parametrar, fel parameterformat eller saknad --yes |
| 3 | Resursen finns inte | Kommandots förhandsvalidering misslyckades, till exempel finns den angivna avbildningen inte |
| 4 | Tillståndskonflikt | Den virtuella maskinens aktuella tillstånd tillåter inte åtgärden (t.ex. avstängning av en redan avstängd virtuell maskin) |
| 6 | Anslutningsfel | Kan inte ansluta till VMs-tjänsten eller så är socket-sökvägen felaktig |
| 7 | Timeout | Begäran fick timeout; kan justeras via --timeout |
| 9 | Utförandefel | Backend returnerar ett fel (felmeddelandet innehåller code_num och en felbeskrivning) |
| 99 | Användaren avbröt | Val av No eller tryck på Enter vid interaktiv bekräftelse |
Exempel:
# 退出码 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
Exempel på användningsscenarier
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 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'
Säkerhetskopiering och 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"}'
Kontroll före borttagning
# 删除存储空间前,先确认是否有虚拟机正在运行、是否存在数据
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>
Anrop från AI-verktyg
# AI 工具可通过命令行调用 vms 命令
# 例如:获取虚拟机与宿主机状态供 AI 分析
vms vm list --json
vms collectd hostinfo --json
# AI 可解析 JSON 输出并作出决策
vms vm list-resource --json
Intern utveckling och 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 @-
Vanliga frågor
Q: Kräver CLI ytterligare installation?
Nej. CLI installeras tillsammans med VMs-applikationen, och efter att applikationen aktiverats kan du använda den genom att köra kommandot vms.
Q: Måste CLI användas via SSH?
Nej. CLI kan anropas från vilken kommandoradsterminal som helst, inklusive lokal terminal, fjärr-SSH, skript, AI-verktyg osv.
Q: Kan CLI hantera virtuella maskiner på andra enheter?
Nej. CLI kommunicerar med VMs-tjänsten via en lokal unix socket och används endast för att hantera virtuella maskiner på den lokala maskinen.
Q: Varför begär vissa kommandon bekräftelse medan andra inte gör det?
Åtgärder som att ta bort virtuella maskiner, ta bort nätverk, ta bort avbildningar, ta bort lagringsutrymmen samt avstängning (poweroff, force-poweroff) påverkar data eller tjänster och kräver därför bekräftelse som standard; start-, omstart-, paus-, återupptagnings- och frågekommandon har inga sådana begränsningar.
Q: Hur bekräftar man farliga åtgärder i icke-interaktivt läge?
Alla farliga åtgärder måste förses med parametern --yes; annars misslyckas kommandot och avslutas (slutkod 1).
Q: Hur avgör man i ett skript huruvida ett kommando lyckades?
Bedöm utifrån slutkoden: 0 betyder framgång och allt annat än 0 betyder fel. Du kan också tolka innehållet i --json-utdata.
Q: Varför är listan i --json-utdata ett objekt?
Vissa kommandons JSON-utdata organiseras som ett objekt efter ID och åtföljs av fältet totalCount, vilket gör det enkelt att hämta direkt efter ID.
Mer hjälp
Varje kommando stöder --help för att se detaljerad användning:
vms --help
vms vm --help
vms vm poweroff --help
vms network create --help